@@ -160,16 +160,18 @@ const propsData = {
160160describe ( 'DocumentationTopic' , ( ) => {
161161 /** @type {import('@vue/test-utils').Wrapper } */
162162 let wrapper ;
163-
163+ const mockStore = {
164+ state : { onThisPageSections : [ ] , references : { } } ,
165+ reset : jest . fn ( ) ,
166+ setReferences : jest . fn ( ) ,
167+ } ;
164168 beforeEach ( ( ) => {
169+ jest . clearAllMocks ( ) ;
165170 wrapper = shallowMount ( DocumentationTopic , {
166171 propsData,
167172 provide : {
168173 isTargetIDE : false ,
169- store : {
170- state : { onThisPageSections : [ ] , references : { } } ,
171- reset : jest . fn ( ) ,
172- } ,
174+ store : mockStore ,
173175 } ,
174176 } ) ;
175177 } ) ;
@@ -232,10 +234,7 @@ describe('DocumentationTopic', () => {
232234 propsData,
233235 provide : {
234236 isTargetIDE : true ,
235- store : {
236- state : { onThisPageSections : [ ] , references : { } } ,
237- reset : jest . fn ( ) ,
238- } ,
237+ store : mockStore ,
239238 } ,
240239 } ) ;
241240
@@ -316,6 +315,9 @@ describe('DocumentationTopic', () => {
316315 role : 'symbol' ,
317316 symbolKind : 'protocol' ,
318317 } ,
318+ provide : {
319+ store : mockStore ,
320+ } ,
319321 } ) ;
320322 const hero = wrapper . find ( DocumentationHero ) ;
321323 expect ( hero . props ( ) ) . toEqual ( {
@@ -641,12 +643,7 @@ describe('DocumentationTopic', () => {
641643 it ( 'renders a `LanguageSwitcher` if TargetIDE' , ( ) => {
642644 const provide = {
643645 isTargetIDE : true ,
644- store : {
645- state : {
646- references : { } ,
647- } ,
648- reset : jest . fn ( ) ,
649- } ,
646+ store : mockStore ,
650647 } ;
651648 wrapper = shallowMount ( DocumentationTopic , { propsData, provide } ) ;
652649 const switcher = wrapper . find ( LanguageSwitcher ) ;
@@ -781,10 +778,7 @@ describe('DocumentationTopic', () => {
781778 SeeAlso : stubSection ( 'see-also' ) ,
782779 } ,
783780 provide : {
784- store : {
785- state : { onThisPageSections : [ ] , references : { } } ,
786- reset : jest . fn ( ) ,
787- } ,
781+ store : mockStore ,
788782 } ,
789783 } ) ;
790784 const sections = wrapper . findAll ( '.section-stub' ) ;
@@ -866,10 +860,7 @@ describe('DocumentationTopic', () => {
866860 'above-title' : '<div class="above-title">Above Title Content</div>' ,
867861 } ,
868862 provide : {
869- store : {
870- state : { onThisPageSections : [ ] , references : { } } ,
871- reset : jest . fn ( ) ,
872- } ,
863+ store : mockStore ,
873864 } ,
874865 } ) ;
875866 expect ( wrapper . find ( DocumentationHero ) . contains ( '.above-title' ) ) . toBe ( true ) ;
@@ -885,10 +876,7 @@ describe('DocumentationTopic', () => {
885876 DocumentationHero,
886877 } ,
887878 provide : {
888- store : {
889- state : { onThisPageSections : [ ] , references : { } } ,
890- reset : jest . fn ( ) ,
891- } ,
879+ store : mockStore ,
892880 } ,
893881 } ) ;
894882 expect ( wrapper . contains ( '.above-hero-content' ) ) . toBe ( true ) ;
@@ -937,29 +925,38 @@ describe('DocumentationTopic', () => {
937925 expect ( wrapper . vm . disableMetadata ) . toBe ( true ) ;
938926 } ) ;
939927
928+ it ( 'sets the references, when they update in the store' , ( ) => {
929+ expect ( mockStore . setReferences ) . toHaveBeenCalledTimes ( 1 ) ;
930+ const newReferences = {
931+ foo : { } ,
932+ } ;
933+ wrapper . setProps ( {
934+ references : newReferences ,
935+ } ) ;
936+ expect ( mockStore . setReferences ) . toHaveBeenCalledTimes ( 2 ) ;
937+ expect ( mockStore . setReferences ) . toHaveBeenCalledWith ( newReferences ) ;
938+ } ) ;
939+
940940 describe ( 'lifecycle hooks' , ( ) => {
941941 it ( 'calls `store.reset()`' , ( ) => {
942- const store = {
943- reset : jest . fn ( ) ,
944- state : { onThisPageSections : [ ] , apiChanges : null , references : { } } ,
945- } ;
942+ jest . clearAllMocks ( ) ;
946943 wrapper = shallowMount ( DocumentationTopic , {
947944 propsData,
948- provide : { store } ,
945+ provide : { store : mockStore } ,
949946 } ) ;
950- expect ( store . reset ) . toBeCalled ( ) ;
947+ expect ( mockStore . reset ) . toBeCalled ( ) ;
948+ expect ( mockStore . setReferences ) . toHaveBeenCalledTimes ( 1 ) ;
949+ expect ( mockStore . setReferences ) . toHaveBeenCalledWith ( propsData . references ) ;
951950 } ) ;
952951
953952 it ( 'routes to the objc variant of a page if that is the preferred language' , async ( ) => {
954953 const $route = { query : { } } ;
955954 const $router = { replace : jest . fn ( ) } ;
956955 const store = {
957- reset : ( ) => { } ,
956+ ... mockStore ,
958957 state : {
959- apiChanges : null ,
960- onThisPageSections : [ ] ,
958+ ...mockStore . state ,
961959 preferredLanguage : Language . objectiveC . key . url ,
962- references : { } ,
963960 } ,
964961 } ;
965962 wrapper = shallowMount ( DocumentationTopic , {
0 commit comments