parent
							
								
									108474e2bb
								
							
						
					
					
						commit
						2f07e3460b
					
				@ -399,7 +399,7 @@ function applySingletonAppMutations(app: App) {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
    const val = singletonApp.config[key as keyof AppConfig]
 | 
					    const val = singletonApp.config[key as keyof AppConfig]
 | 
				
			||||||
    // @ts-ignore
 | 
					    // @ts-ignore
 | 
				
			||||||
    app.config[key] = val
 | 
					    app.config[key] = isObject(val) ? Object.create(val) : val
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // compat for runtime ignoredElements -> isCustomElement
 | 
					    // compat for runtime ignoredElements -> isCustomElement
 | 
				
			||||||
    if (
 | 
					    if (
 | 
				
			||||||
 | 
				
			|||||||
@ -1,6 +1,6 @@
 | 
				
			|||||||
import Vue from '@vue/compat'
 | 
					import Vue from '@vue/compat'
 | 
				
			||||||
import { effect, isReactive } from '@vue/reactivity'
 | 
					import { effect, isReactive } from '@vue/reactivity'
 | 
				
			||||||
import { nextTick } from '@vue/runtime-core'
 | 
					import { h, nextTick } from '@vue/runtime-core'
 | 
				
			||||||
import {
 | 
					import {
 | 
				
			||||||
  DeprecationTypes,
 | 
					  DeprecationTypes,
 | 
				
			||||||
  deprecationData,
 | 
					  deprecationData,
 | 
				
			||||||
@ -454,19 +454,51 @@ test('post-facto global asset registration should affect apps created via create
 | 
				
			|||||||
    template: '<foo/>'
 | 
					    template: '<foo/>'
 | 
				
			||||||
  })
 | 
					  })
 | 
				
			||||||
  Vue.component('foo', { template: 'foo' })
 | 
					  Vue.component('foo', { template: 'foo' })
 | 
				
			||||||
  const vm = app.mount(document.createElement('div')) as any;
 | 
					  const vm = app.mount(document.createElement('div')) as any
 | 
				
			||||||
  expect(vm.$el.textContent).toBe('foo')
 | 
					  expect(vm.$el.textContent).toBe('foo')
 | 
				
			||||||
  delete singletonApp._context.components.foo
 | 
					  delete singletonApp._context.components.foo
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
test('local asset registration should not affect other local apps', () => {
 | 
					test('local asset registration should not affect other local apps', () => {
 | 
				
			||||||
  const app1 = createApp({});
 | 
					  const app1 = createApp({})
 | 
				
			||||||
  const app2 = createApp({});
 | 
					  const app2 = createApp({})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  app1.component('foo', {});
 | 
					  app1.component('foo', {})
 | 
				
			||||||
  app2.component('foo', {});
 | 
					  app2.component('foo', {})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  expect(
 | 
					  expect(
 | 
				
			||||||
    `Component "foo" has already been registered in target app`
 | 
					    `Component "foo" has already been registered in target app`
 | 
				
			||||||
  ).not.toHaveBeenWarned()
 | 
					  ).not.toHaveBeenWarned()
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test('local app-level mixin registration should not affect other local apps', () => {
 | 
				
			||||||
 | 
					  const app1 = createApp({ render: () => h('div') })
 | 
				
			||||||
 | 
					  const app2 = createApp({})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  const mixin = { created: jest.fn() }
 | 
				
			||||||
 | 
					  app1.mixin(mixin)
 | 
				
			||||||
 | 
					  app2.mixin(mixin)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  expect(`Mixin has already been applied`).not.toHaveBeenWarned()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  app1.mount(document.createElement('div'))
 | 
				
			||||||
 | 
					  expect(mixin.created).toHaveBeenCalledTimes(1)
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// #5699
 | 
				
			||||||
 | 
					test('local app config should not affect other local apps in v3 mode', () => {
 | 
				
			||||||
 | 
					  Vue.configureCompat({ MODE: 3 })
 | 
				
			||||||
 | 
					  const app1 = createApp({
 | 
				
			||||||
 | 
					    render: () => h('div'),
 | 
				
			||||||
 | 
					    provide() {
 | 
				
			||||||
 | 
					      return {
 | 
				
			||||||
 | 
					        test: 123
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					  app1.config.globalProperties.test = () => {}
 | 
				
			||||||
 | 
					  app1.mount(document.createElement('div'))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  const app2 = createApp({})
 | 
				
			||||||
 | 
					  expect(app2.config.globalProperties.test).toBe(undefined)
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user