File tree Expand file tree Collapse file tree 1 file changed +51
-0
lines changed
packages/runtime-core/__tests__ Expand file tree Collapse file tree 1 file changed +51
-0
lines changed Original file line number Diff line number Diff line change @@ -937,4 +937,55 @@ describe('hot module replacement', () => {
937937 rerender ( id , ( ) => 'bar' )
938938 expect ( serializeInner ( root ) ) . toBe ( 'bar' )
939939 } )
940+
941+ // https://github.com/vitejs/vite-plugin-vue/issues/599
942+ // Both Outer and Inner are reloaded when './server.js' changes
943+ test ( 'reload nested components from single update' , async ( ) => {
944+ const innerId = 'nested-reload-inner'
945+ const outerId = 'nested-reload-outer'
946+
947+ let Inner = {
948+ __hmrId : innerId ,
949+ render ( ) {
950+ return h ( 'div' , 'foo' )
951+ } ,
952+ }
953+ let Outer = {
954+ __hmrId : outerId ,
955+ render ( ) {
956+ return h ( Inner )
957+ } ,
958+ }
959+
960+ createRecord ( innerId , Inner )
961+ createRecord ( outerId , Outer )
962+
963+ const App = {
964+ render : ( ) => h ( Outer ) ,
965+ }
966+
967+ const root = nodeOps . createElement ( 'div' )
968+ render ( h ( App ) , root )
969+ expect ( serializeInner ( root ) ) . toBe ( '<div>foo</div>' )
970+
971+ Inner = {
972+ __hmrId : innerId ,
973+ render ( ) {
974+ return h ( 'div' , 'bar' )
975+ } ,
976+ }
977+ Outer = {
978+ __hmrId : outerId ,
979+ render ( ) {
980+ return h ( Inner )
981+ } ,
982+ }
983+
984+ // trigger reload for both Outer and Inner
985+ reload ( outerId , Outer )
986+ reload ( innerId , Inner )
987+ await nextTick ( )
988+
989+ expect ( serializeInner ( root ) ) . toBe ( '<div>bar</div>' )
990+ } )
940991} )
You can’t perform that action at this time.
0 commit comments