@@ -3,7 +3,7 @@ import { Store } from '@ngxs/store';
33import { MockProvider } from 'ng-mocks' ;
44
55import { PLATFORM_ID , Provider } from '@angular/core' ;
6- import { TestBed } from '@angular/core/testing' ;
6+ import { fakeAsync , TestBed } from '@angular/core/testing' ;
77import { ActivatedRoute , NavigationEnd , Router } from '@angular/router' ;
88
99import { HelpScoutService } from '@core/services/help-scout.service' ;
@@ -32,14 +32,15 @@ import { MetaTagsBuilderServiceMockFactory } from '@testing/providers/meta-tags-
3232import { PrerenderReadyServiceMockFactory } from '@testing/providers/prerender-ready.service.mock' ;
3333import { ActivatedRouteMockBuilder } from '@testing/providers/route-provider.mock' ;
3434import { RouterMockBuilder } from '@testing/providers/router-provider.mock' ;
35- import { provideMockStore } from '@testing/providers/store-provider.mock' ;
35+ import { mergeSignalOverrides , provideMockStore , SignalOverride } from '@testing/providers/store-provider.mock' ;
3636
3737interface SetupOverrides {
3838 registryId ?: string ;
3939 registry ?: RegistrationOverviewModel | null ;
4040 identifiers ?: IdentifierModel [ ] ;
4141 canonicalPath ?: string ;
4242 platform ?: string ;
43+ selectorOverrides ?: SignalOverride [ ] ;
4344}
4445
4546function setup ( overrides : SetupOverrides = { } ) {
@@ -72,6 +73,20 @@ function setup(overrides: SetupOverrides = {}) {
7273 } ) as MetaTagsData
7374 ) ;
7475
76+ const defaultSignals : SignalOverride [ ] = [
77+ { selector : RegistrySelectors . getRegistry , value : registry } ,
78+ { selector : RegistrySelectors . isRegistryLoading , value : false } ,
79+ { selector : RegistrySelectors . getIdentifiers , value : identifiers } ,
80+ { selector : RegistrySelectors . getLicense , value : { name : 'MIT' } } ,
81+ { selector : RegistrySelectors . isLicenseLoading , value : false } ,
82+ { selector : ContributorsSelectors . getBibliographicContributors , value : [ ] } ,
83+ { selector : ContributorsSelectors . isBibliographicContributorsLoading , value : false } ,
84+ { selector : CurrentResourceSelectors . getCurrentResource , value : null } ,
85+ { selector : CurrentResourceSelectors . hasNoPermissions , value : false } ,
86+ ] ;
87+
88+ const signals = mergeSignalOverrides ( defaultSignals , overrides . selectorOverrides ) ;
89+
7590 const providers : Provider [ ] = [
7691 provideOSFCore ( ) ,
7792 MockProvider ( HelpScoutService , helpScoutService ) ,
@@ -82,18 +97,7 @@ function setup(overrides: SetupOverrides = {}) {
8297 MockProvider ( AnalyticsService , analyticsService ) ,
8398 MockProvider ( ActivatedRoute , routeBuilder . build ( ) ) ,
8499 MockProvider ( Router , mockRouter ) ,
85- provideMockStore ( {
86- signals : [
87- { selector : RegistrySelectors . getRegistry , value : registry } ,
88- { selector : RegistrySelectors . isRegistryLoading , value : false } ,
89- { selector : RegistrySelectors . getIdentifiers , value : identifiers } ,
90- { selector : RegistrySelectors . getLicense , value : { name : 'MIT' } } ,
91- { selector : RegistrySelectors . isLicenseLoading , value : false } ,
92- { selector : ContributorsSelectors . getBibliographicContributors , value : [ ] } ,
93- { selector : ContributorsSelectors . isBibliographicContributorsLoading , value : false } ,
94- { selector : CurrentResourceSelectors . getCurrentResource , value : null } ,
95- ] ,
96- } ) ,
100+ provideMockStore ( { signals } ) ,
97101 ] ;
98102
99103 if ( overrides . platform ) {
@@ -225,16 +229,20 @@ describe('RegistryComponent', () => {
225229 expect ( metaTagsService . updateMetaTags ) . not . toHaveBeenCalled ( ) ;
226230 } ) ;
227231
228- it ( 'should send analytics on NavigationEnd event' , ( ) => {
229- const { routerBuilder, analyticsService } = setup ( ) ;
230-
232+ it ( 'should send analytics on NavigationEnd event' , fakeAsync ( ( ) => {
233+ const mockResource = { id : 'registry-1' } ;
234+ const { routerBuilder, analyticsService } = setup ( {
235+ selectorOverrides : [
236+ { selector : CurrentResourceSelectors . getCurrentResource , value : mockResource } ,
237+ { selector : CurrentResourceSelectors . hasNoPermissions , value : true } ,
238+ ] ,
239+ } ) ;
231240 routerBuilder . emit ( new NavigationEnd ( 1 , '/registries/registry-1' , '/registries/registry-1' ) ) ;
232-
233241 expect ( analyticsService . sendCountedUsageForRegistrationAndProjects ) . toHaveBeenCalledWith (
234242 '/registries/registry-1' ,
235- null
243+ mockResource
236244 ) ;
237- } ) ;
245+ } ) ) ;
238246
239247 it ( 'should unset helpScout and clear provider on destroy' , ( ) => {
240248 const { component, store, helpScoutService } = setup ( ) ;
0 commit comments