From eb5f294d928ef162218560240ff54b82ae8a1a17 Mon Sep 17 00:00:00 2001 From: Sinan997 Date: Wed, 20 Sep 2023 10:29:28 +0300 Subject: [PATCH 1/8] fix tests --- .../src/lib/tests/api.interceptor.spec.ts | 9 +++-- .../oauth/src/lib/tests/auth.guard.spec.ts | 12 ++++-- .../extensions/src/tests/enum.util.spec.ts | 38 +++++++++---------- 3 files changed, 32 insertions(+), 27 deletions(-) diff --git a/npm/ng-packs/packages/oauth/src/lib/tests/api.interceptor.spec.ts b/npm/ng-packs/packages/oauth/src/lib/tests/api.interceptor.spec.ts index 1b102b8589..04a7652300 100644 --- a/npm/ng-packs/packages/oauth/src/lib/tests/api.interceptor.spec.ts +++ b/npm/ng-packs/packages/oauth/src/lib/tests/api.interceptor.spec.ts @@ -3,11 +3,12 @@ import { SpyObject } from '@ngneat/spectator'; import { createServiceFactory, SpectatorService } from '@ngneat/spectator/jest'; import { OAuthService } from 'angular-oauth2-oidc'; import { Subject, timer } from 'rxjs'; -import { ApiInterceptor, HttpWaitService, SessionStateService, TENANT_KEY } from '@abp/ng.core'; +import { HttpWaitService, SessionStateService, TENANT_KEY } from '@abp/ng.core'; +import { OAuthApiInterceptor } from '../interceptors'; describe('ApiInterceptor', () => { - let spectator: SpectatorService; - let interceptor: ApiInterceptor; + let spectator: SpectatorService; + let interceptor: OAuthApiInterceptor; let oauthService: SpyObject; let sessionState: SpyObject; let httpWaitService: SpyObject; @@ -15,7 +16,7 @@ describe('ApiInterceptor', () => { const testTenantKey = 'TEST_TENANT_KEY'; const createService = createServiceFactory({ - service: ApiInterceptor, + service: OAuthApiInterceptor, mocks: [OAuthService, SessionStateService], providers: [{ provide: TENANT_KEY, useValue: testTenantKey }], }); diff --git a/npm/ng-packs/packages/oauth/src/lib/tests/auth.guard.spec.ts b/npm/ng-packs/packages/oauth/src/lib/tests/auth.guard.spec.ts index 1440f9249a..dbfb3c74f3 100644 --- a/npm/ng-packs/packages/oauth/src/lib/tests/auth.guard.spec.ts +++ b/npm/ng-packs/packages/oauth/src/lib/tests/auth.guard.spec.ts @@ -1,11 +1,15 @@ -import { createServiceFactory, SpectatorService } from '@ngneat/spectator/jest'; +import { createServiceFactory, SpectatorService, createSpyObject } from '@ngneat/spectator/jest'; import { OAuthService } from 'angular-oauth2-oidc'; import { AbpOAuthGuard } from '../guards/oauth.guard'; import { AuthService } from '@abp/ng.core'; +import { ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router'; describe('AuthGuard', () => { let spectator: SpectatorService; - let guard: AbpOAuthGuard; + let guard : AbpOAuthGuard; + let route = createSpyObject(ActivatedRouteSnapshot) + let state = createSpyObject(RouterStateSnapshot) + const createService = createServiceFactory({ service: AbpOAuthGuard, mocks: [OAuthService, AuthService], @@ -18,7 +22,7 @@ describe('AuthGuard', () => { it('should return true when user logged in', () => { spectator.inject(OAuthService).hasValidAccessToken.andReturn(true); - expect(guard.canActivate()).toBe(true); + expect(guard.canActivate(route, state)).toBe(true); }); it('should execute the navigateToLogin method of the authService', () => { @@ -26,7 +30,7 @@ describe('AuthGuard', () => { spectator.inject(OAuthService).hasValidAccessToken.andReturn(false); const navigateToLoginSpy = jest.spyOn(authService, 'navigateToLogin'); - expect(guard.canActivate()).toBe(false); + expect(guard.canActivate(route, state)).toBe(false); expect(navigateToLoginSpy).toHaveBeenCalled(); }); }); diff --git a/npm/ng-packs/packages/theme-shared/extensions/src/tests/enum.util.spec.ts b/npm/ng-packs/packages/theme-shared/extensions/src/tests/enum.util.spec.ts index d0fbdde765..2f5fc84bf9 100644 --- a/npm/ng-packs/packages/theme-shared/extensions/src/tests/enum.util.spec.ts +++ b/npm/ng-packs/packages/theme-shared/extensions/src/tests/enum.util.spec.ts @@ -1,8 +1,11 @@ -import { ConfigStateService, LocalizationService } from '@abp/ng.core'; +import { ConfigStateService, ExtensionEnumFieldDto, LocalizationService } from '@abp/ng.core'; import { BehaviorSubject, of } from 'rxjs'; import { take } from 'rxjs/operators'; import { PropData } from '../lib/models/props'; import { createEnum, createEnumOptions, createEnumValueResolver } from '../lib/utils/enum.util'; +import { createSpyObject } from '@ngneat/spectator' +import { AbpApplicationLocalizationService } from '@abp/ng.core'; + const mockSessionState = { languageChange$: new BehaviorSubject('tr'), @@ -11,10 +14,10 @@ const mockSessionState = { onLanguageChange$: () => new BehaviorSubject('tr'), } as any; -const fields = [ - { name: 'foo', value: 1 }, - { name: 'bar', value: 2 }, - { name: 'baz', value: 3 }, +const fields: ExtensionEnumFieldDto[] = [ + { name: 'foo', value: {number: 1} }, + { name: 'bar', value: {number: 2} }, + { name: 'baz', value: {number: 3} }, ]; class MockPropData extends PropData { @@ -42,17 +45,13 @@ describe('Enum Utils', () => { describe('#createEnum', () => { const enumFromFields = createEnum(fields); - test.each` - key | expected - ${'foo'} | ${1} - ${'bar'} | ${2} - ${'baz'} | ${3} - ${1} | ${'foo'} - ${2} | ${'bar'} - ${3} | ${'baz'} - `('should create an enum that returns $expected when $key is accessed', ({ key, expected }) => { - expect(enumFromFields[key]).toBe(expected); - }); + test.each([ + {name:'foo', value: 'number', expected: 1}, + {name:'bar', value: 'number', expected: 2}, + {name:'baz', value: 'number', expected: 3} + ])('',({name, value, expected})=>{ + expect(enumFromFields[name][value]).toBe(expected); + }) }); describe('#createEnumValueResolver', () => { @@ -75,7 +74,7 @@ describe('Enum Utils', () => { 'EnumProp', ); const propData = new MockPropData({ - extraProperties: { EnumProp: value }, + extraProperties: { EnumProp: value }, }); propData.getInjected = () => service as any; @@ -111,8 +110,9 @@ describe('Enum Utils', () => { function createMockLocalizationService() { const fakeAppConfigService = { get: () => of({ localization: mockL10n }) } as any; - const configState = new ConfigStateService(fakeAppConfigService); + let abpApplicationLocalizationService = createSpyObject(AbpApplicationLocalizationService) + const configState = new ConfigStateService(fakeAppConfigService, abpApplicationLocalizationService, true); configState.refreshAppState(); return new LocalizationService(mockSessionState, null, null, configState); -} +} \ No newline at end of file From 82a1f302b2b542ed388624d4269acd6d432516ec Mon Sep 17 00:00:00 2001 From: Sinan997 Date: Wed, 20 Sep 2023 13:55:07 +0300 Subject: [PATCH 2/8] fix tests --- .../extensions/src/tests/entity-actions.spec.ts | 2 +- .../extensions/src/tests/entity-props.spec.ts | 4 +--- .../extensions/src/tests/form-props.spec.ts | 6 +++--- .../extensions/src/tests/localization.util.spec.ts | 11 +++++++---- 4 files changed, 12 insertions(+), 11 deletions(-) diff --git a/npm/ng-packs/packages/theme-shared/extensions/src/tests/entity-actions.spec.ts b/npm/ng-packs/packages/theme-shared/extensions/src/tests/entity-actions.spec.ts index 35833a1950..5ee3889c0c 100644 --- a/npm/ng-packs/packages/theme-shared/extensions/src/tests/entity-actions.spec.ts +++ b/npm/ng-packs/packages/theme-shared/extensions/src/tests/entity-actions.spec.ts @@ -107,7 +107,7 @@ describe('EntityAction', () => { expect(action.text).toBe(options.text); expect(action.action).toBe(options.action); - expect(action.permission).toBeUndefined(); + expect(action.permission).toBe(''); expect(action.visible(null)).toBe(true); expect(action.icon).toBe(''); }); diff --git a/npm/ng-packs/packages/theme-shared/extensions/src/tests/entity-props.spec.ts b/npm/ng-packs/packages/theme-shared/extensions/src/tests/entity-props.spec.ts index 8de503c5f0..bb1c2c7cc4 100644 --- a/npm/ng-packs/packages/theme-shared/extensions/src/tests/entity-props.spec.ts +++ b/npm/ng-packs/packages/theme-shared/extensions/src/tests/entity-props.spec.ts @@ -111,13 +111,11 @@ describe('EntityProp', () => { type: ePropType.String, name: 'NAME', }; - const prop = new EntityProp(options); - expect(prop.type).toBe(options.type); expect(prop.name).toBe(options.name); expect(prop.displayName).toBe(options.name); - expect(prop.permission).toBeUndefined(); + expect(prop.permission).toBe(''); expect(prop.visible()).toBe(true); expect(prop.sortable).toBe(false); expect(prop.columnWidth).toBeUndefined(); diff --git a/npm/ng-packs/packages/theme-shared/extensions/src/tests/form-props.spec.ts b/npm/ng-packs/packages/theme-shared/extensions/src/tests/form-props.spec.ts index bd933741a5..3b3298babc 100644 --- a/npm/ng-packs/packages/theme-shared/extensions/src/tests/form-props.spec.ts +++ b/npm/ng-packs/packages/theme-shared/extensions/src/tests/form-props.spec.ts @@ -127,14 +127,14 @@ describe('FormProp', () => { expect(prop.type).toBe(options.type); expect(prop.name).toBe(options.name); expect(prop.displayName).toBe(options.name); - expect(prop.permission).toBeUndefined(); + expect(prop.permission).toBe(''); expect(prop.visible()).toBe(true); expect(prop.asyncValidators(null)).toEqual([]); expect(prop.validators(null)).toEqual([]); expect(prop.disabled()).toBe(false); expect(prop.readonly()).toBe(false); expect(prop.autocomplete).toBe('off'); - expect(prop.defaultValue).toBeNull(); + expect(prop.defaultValue).toBe(''); expect(prop.options).toBeUndefined(); expect(prop.id).toBe(options.name); }); @@ -144,7 +144,7 @@ describe('FormProp', () => { ${0} | ${0} ${''} | ${''} ${false} | ${false} - ${undefined} | ${null} + ${undefined} | ${''} `( 'should set defaultValue as $expected when $defaultValue is given', ({ defaultValue, expected }) => { diff --git a/npm/ng-packs/packages/theme-shared/extensions/src/tests/localization.util.spec.ts b/npm/ng-packs/packages/theme-shared/extensions/src/tests/localization.util.spec.ts index 007b304b42..da41ea913b 100644 --- a/npm/ng-packs/packages/theme-shared/extensions/src/tests/localization.util.spec.ts +++ b/npm/ng-packs/packages/theme-shared/extensions/src/tests/localization.util.spec.ts @@ -3,17 +3,20 @@ import { createDisplayNameLocalizationPipeKeyGenerator } from '../lib/utils/loca describe('Localization Utils', () => { describe('#createDisplayNameLocalizationPipeKeyGenerator', () => { - const generateDisplayName = createDisplayNameLocalizationPipeKeyGenerator({ - values: { + const localization: ApplicationLocalizationConfigurationDto = { + values:{ Foo: { Bar: 'Bar', 'DisplayName:Bar': 'Bar' }, Default: { Bar: 'Bar', 'DisplayName:Bar': 'Bar' }, }, defaultResourceName: 'Default', - currentCulture: null, + resources: {}, languages: [], languageFilesMap: null, languagesMap: null, - } as ApplicationLocalizationConfigurationDto); + currentCulture: null + } + + const generateDisplayName = createDisplayNameLocalizationPipeKeyGenerator(localization); test.each` displayName | fallback | expected From 469c40cdc3a894a8f24e6ccbb4a3160849ba1b66 Mon Sep 17 00:00:00 2001 From: Sinan997 Date: Thu, 21 Sep 2023 14:12:20 +0300 Subject: [PATCH 3/8] fix routes.service.spec.ts --- .../core/src/lib/tests/routes.service.spec.ts | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/npm/ng-packs/packages/core/src/lib/tests/routes.service.spec.ts b/npm/ng-packs/packages/core/src/lib/tests/routes.service.spec.ts index ab9c6a76ae..1d2121b3a2 100644 --- a/npm/ng-packs/packages/core/src/lib/tests/routes.service.spec.ts +++ b/npm/ng-packs/packages/core/src/lib/tests/routes.service.spec.ts @@ -3,14 +3,31 @@ import { take } from 'rxjs/operators'; import { RoutesService } from '../services/routes.service'; import { DummyInjector } from './utils/common.utils'; import { mockPermissionService } from './utils/permission-service.spec.utils'; +import { compareFuncFactory } from '../tokens/compare-func.token'; const updateStream$ = new Subject(); - export const mockRoutesService = (injectorPayload = {} as { [key: string]: any }) => { const injector = new DummyInjector({ PermissionService: mockPermissionService(), ConfigStateService: { createOnUpdateStream: () => updateStream$ }, OTHERS_GROUP: 'OthersGroup', + SORT_COMPARE_FUNC: (a, b) => { + const aName = a.name; + const bName = b.name; + const aNumber = a.order; + const bNumber = b.order; + + if (!Number.isInteger(aNumber)) return 1; + if (!Number.isInteger(bNumber)) return -1; + + if (aNumber > bNumber) return 1 + if (aNumber < bNumber) return -1 + + if ( aName > bName ) return 1; + if ( aName < bName ) return -1; + + return 0 + }, ...injectorPayload, }); return new RoutesService(injector); @@ -50,7 +67,6 @@ describe('Routes Service', () => { const flat = await lastValueFrom(service.flat$.pipe(take(1))); const tree = await lastValueFrom(service.tree$.pipe(take(1))); const visible = await lastValueFrom(service.visible$.pipe(take(1))); - expect(flat.length).toBe(5); expect(flat[0].name).toBe('baz'); expect(flat[1].name).toBe('qux'); From 3fe8c170895e77a70c54be34d935d564793f66d8 Mon Sep 17 00:00:00 2001 From: Sinan997 Date: Thu, 21 Sep 2023 16:31:32 +0300 Subject: [PATCH 4/8] fix breadcrumb.component.spec.ts --- .vscode/settings.json | 2 ++ .../theme-shared/src/lib/tests/breadcrumb.component.spec.ts | 5 ++--- 2 files changed, 4 insertions(+), 3 deletions(-) create mode 100644 .vscode/settings.json diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000000..e02aef276e --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,2 @@ +{ +} \ No newline at end of file diff --git a/npm/ng-packs/packages/theme-shared/src/lib/tests/breadcrumb.component.spec.ts b/npm/ng-packs/packages/theme-shared/src/lib/tests/breadcrumb.component.spec.ts index 75f0c8ab55..40a1109de0 100644 --- a/npm/ng-packs/packages/theme-shared/src/lib/tests/breadcrumb.component.spec.ts +++ b/npm/ng-packs/packages/theme-shared/src/lib/tests/breadcrumb.component.spec.ts @@ -5,7 +5,7 @@ import { RouterOutletComponent, RoutesService, } from '@abp/ng.core'; -import { HttpClient } from '@angular/common/http'; +import { HttpClient, HttpClientModule } from '@angular/common/http'; import { RouterModule } from '@angular/router'; import { createRoutingFactory, SpectatorRouting } from '@ngneat/spectator/jest'; // eslint-disable-next-line @nx/enforce-module-boundaries @@ -34,7 +34,7 @@ describe('BreadcrumbComponent', () => { }, ], declarations: [LocalizationPipe, BreadcrumbComponent, BreadcrumbItemsComponent], - imports: [RouterModule], + imports: [RouterModule,HttpClientModule], routes: [ { path: '', @@ -62,7 +62,6 @@ describe('BreadcrumbComponent', () => { routes.add(mockRoutes); await spectator.router.navigateByUrl('/identity/users'); spectator.detectChanges(); - const elements = spectator.queryAll('li'); expect(elements).toHaveLength(3); expect(elements[1]).toHaveText('Identity'); From f7dce593e25f5275e01abf543278c92b3cd813eb Mon Sep 17 00:00:00 2001 From: Sinan997 Date: Fri, 22 Sep 2023 08:57:06 +0300 Subject: [PATCH 5/8] fix tests --- .../core/src/lib/tests/content-projection.service.spec.ts | 1 - .../core/src/lib/tests/dynamic-layout.component.spec.ts | 1 - .../packages/core/src/lib/tests/object-utils.spec.ts | 6 ++---- .../packages/core/src/lib/tests/routes.service.spec.ts | 1 - .../theme-shared/extensions/src/tests/enum.util.spec.ts | 7 ++----- .../theme-shared/extensions/src/tests/state.util.spec.ts | 5 +++-- .../src/lib/tests/confirmation.service.spec.ts | 1 - .../theme-shared/src/lib/tests/error.component.spec.ts | 3 ++- .../theme-shared/src/lib/tests/toaster.service.spec.ts | 1 - 9 files changed, 9 insertions(+), 17 deletions(-) diff --git a/npm/ng-packs/packages/core/src/lib/tests/content-projection.service.spec.ts b/npm/ng-packs/packages/core/src/lib/tests/content-projection.service.spec.ts index 30f9f92e73..34f9451b0a 100644 --- a/npm/ng-packs/packages/core/src/lib/tests/content-projection.service.spec.ts +++ b/npm/ng-packs/packages/core/src/lib/tests/content-projection.service.spec.ts @@ -10,7 +10,6 @@ describe('ContentProjectionService', () => { // createServiceFactory does not accept entryComponents directly @NgModule({ declarations: [TestComponent], - entryComponents: [TestComponent], }) class TestModule {} diff --git a/npm/ng-packs/packages/core/src/lib/tests/dynamic-layout.component.spec.ts b/npm/ng-packs/packages/core/src/lib/tests/dynamic-layout.component.spec.ts index 2076be84b4..411a9e8041 100644 --- a/npm/ng-packs/packages/core/src/lib/tests/dynamic-layout.component.spec.ts +++ b/npm/ng-packs/packages/core/src/lib/tests/dynamic-layout.component.spec.ts @@ -36,7 +36,6 @@ const LAYOUTS = [ @NgModule({ imports: [RouterModule], declarations: [...LAYOUTS], - entryComponents: [...LAYOUTS], }) class DummyLayoutModule {} diff --git a/npm/ng-packs/packages/core/src/lib/tests/object-utils.spec.ts b/npm/ng-packs/packages/core/src/lib/tests/object-utils.spec.ts index 235d2e90ed..f2548bfc79 100644 --- a/npm/ng-packs/packages/core/src/lib/tests/object-utils.spec.ts +++ b/npm/ng-packs/packages/core/src/lib/tests/object-utils.spec.ts @@ -43,11 +43,9 @@ describe('DeepMerge', () => { ); it('should correctly return when both inputs are objects with different fields', () => { - const target = { a: 1 }; - const source = { b: 2 }; const expected = { a: 1, b: 2 }; - expect(deepMerge(target, source)).toEqual(expected); - expect(deepMerge(source, target)).toEqual(expected); + expect(deepMerge({ a: 1 }, { b: 2 })).toEqual(expected); + expect(deepMerge({ b: 2 }, { a: 1 })).toEqual(expected); }); it('should correctly return when both inputs are object with same fields but different values', () => { diff --git a/npm/ng-packs/packages/core/src/lib/tests/routes.service.spec.ts b/npm/ng-packs/packages/core/src/lib/tests/routes.service.spec.ts index 1d2121b3a2..69935be439 100644 --- a/npm/ng-packs/packages/core/src/lib/tests/routes.service.spec.ts +++ b/npm/ng-packs/packages/core/src/lib/tests/routes.service.spec.ts @@ -3,7 +3,6 @@ import { take } from 'rxjs/operators'; import { RoutesService } from '../services/routes.service'; import { DummyInjector } from './utils/common.utils'; import { mockPermissionService } from './utils/permission-service.spec.utils'; -import { compareFuncFactory } from '../tokens/compare-func.token'; const updateStream$ = new Subject(); export const mockRoutesService = (injectorPayload = {} as { [key: string]: any }) => { diff --git a/npm/ng-packs/packages/theme-shared/extensions/src/tests/enum.util.spec.ts b/npm/ng-packs/packages/theme-shared/extensions/src/tests/enum.util.spec.ts index 2f5fc84bf9..03f157f5c8 100644 --- a/npm/ng-packs/packages/theme-shared/extensions/src/tests/enum.util.spec.ts +++ b/npm/ng-packs/packages/theme-shared/extensions/src/tests/enum.util.spec.ts @@ -3,9 +3,6 @@ import { BehaviorSubject, of } from 'rxjs'; import { take } from 'rxjs/operators'; import { PropData } from '../lib/models/props'; import { createEnum, createEnumOptions, createEnumValueResolver } from '../lib/utils/enum.util'; -import { createSpyObject } from '@ngneat/spectator' -import { AbpApplicationLocalizationService } from '@abp/ng.core'; - const mockSessionState = { languageChange$: new BehaviorSubject('tr'), @@ -110,8 +107,8 @@ describe('Enum Utils', () => { function createMockLocalizationService() { const fakeAppConfigService = { get: () => of({ localization: mockL10n }) } as any; - let abpApplicationLocalizationService = createSpyObject(AbpApplicationLocalizationService) - const configState = new ConfigStateService(fakeAppConfigService, abpApplicationLocalizationService, true); + const fakeLocalizationService = { get: () => of({ localization: mockL10n }) } as any; + const configState = new ConfigStateService(fakeAppConfigService, fakeLocalizationService, false); configState.refreshAppState(); return new LocalizationService(mockSessionState, null, null, configState); diff --git a/npm/ng-packs/packages/theme-shared/extensions/src/tests/state.util.spec.ts b/npm/ng-packs/packages/theme-shared/extensions/src/tests/state.util.spec.ts index cedd632165..c9efdce913 100644 --- a/npm/ng-packs/packages/theme-shared/extensions/src/tests/state.util.spec.ts +++ b/npm/ng-packs/packages/theme-shared/extensions/src/tests/state.util.spec.ts @@ -11,7 +11,8 @@ import { } from '../lib/utils/state.util'; const fakeAppConfigService = { get: () => of(createMockState()) } as any; -const configState = new ConfigStateService(fakeAppConfigService); +const fakeLocalizationService = { get: () => of(createMockState()) } as any; +const configState = new ConfigStateService(fakeAppConfigService,fakeLocalizationService,false); configState.refreshAppState(); describe('State Utils', () => { @@ -30,7 +31,7 @@ describe('State Utils', () => { }); it('should not emit when object extensions do not exist', done => { - const emptyConfigState = new ConfigStateService(null); + const emptyConfigState = new ConfigStateService(null,null,false); const emit = jest.fn(); getObjectExtensionEntitiesFromStore(emptyConfigState, 'Identity').subscribe(emit); diff --git a/npm/ng-packs/packages/theme-shared/src/lib/tests/confirmation.service.spec.ts b/npm/ng-packs/packages/theme-shared/src/lib/tests/confirmation.service.spec.ts index 5674a501de..587365e3f6 100644 --- a/npm/ng-packs/packages/theme-shared/src/lib/tests/confirmation.service.spec.ts +++ b/npm/ng-packs/packages/theme-shared/src/lib/tests/confirmation.service.spec.ts @@ -10,7 +10,6 @@ import { CONFIRMATION_ICONS, DEFAULT_CONFIRMATION_ICONS } from '../tokens/confir @NgModule({ exports: [ConfirmationComponent], - entryComponents: [ConfirmationComponent], declarations: [ConfirmationComponent], imports: [CoreTestingModule.withConfig()], providers: [{ provide: CONFIRMATION_ICONS, useValue: DEFAULT_CONFIRMATION_ICONS }], diff --git a/npm/ng-packs/packages/theme-shared/src/lib/tests/error.component.spec.ts b/npm/ng-packs/packages/theme-shared/src/lib/tests/error.component.spec.ts index 510ef4104d..5bde4d2a54 100644 --- a/npm/ng-packs/packages/theme-shared/src/lib/tests/error.component.spec.ts +++ b/npm/ng-packs/packages/theme-shared/src/lib/tests/error.component.spec.ts @@ -1,5 +1,5 @@ import { CORE_OPTIONS, LocalizationPipe } from '@abp/ng.core'; -import { HttpClient } from '@angular/common/http'; +import { HttpClient, HttpClientModule } from '@angular/common/http'; import { ElementRef, Renderer2 } from '@angular/core'; import { createHostFactory, SpectatorHost } from '@ngneat/spectator/jest'; import { Subject } from 'rxjs'; @@ -19,6 +19,7 @@ describe('ErrorComponent', () => { useValue: { nativeElement: document.createElement('div') }, }, ], + imports:[HttpClientModule] }); beforeEach(() => { diff --git a/npm/ng-packs/packages/theme-shared/src/lib/tests/toaster.service.spec.ts b/npm/ng-packs/packages/theme-shared/src/lib/tests/toaster.service.spec.ts index d0d41edf22..4e1b2830c7 100644 --- a/npm/ng-packs/packages/theme-shared/src/lib/tests/toaster.service.spec.ts +++ b/npm/ng-packs/packages/theme-shared/src/lib/tests/toaster.service.spec.ts @@ -8,7 +8,6 @@ import { ToasterService } from '../services/toaster.service'; @NgModule({ exports: [ToastContainerComponent], - entryComponents: [ToastContainerComponent], declarations: [ToastContainerComponent, ToastComponent], imports: [CoreTestingModule.withConfig()], }) From 0b136d0bb2a56ba930ac544fdbd871ac8900fa39 Mon Sep 17 00:00:00 2001 From: Sinan997 Date: Fri, 22 Sep 2023 09:01:26 +0300 Subject: [PATCH 6/8] add missing test text --- .../theme-shared/extensions/src/tests/enum.util.spec.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/npm/ng-packs/packages/theme-shared/extensions/src/tests/enum.util.spec.ts b/npm/ng-packs/packages/theme-shared/extensions/src/tests/enum.util.spec.ts index 03f157f5c8..56c61e1fc8 100644 --- a/npm/ng-packs/packages/theme-shared/extensions/src/tests/enum.util.spec.ts +++ b/npm/ng-packs/packages/theme-shared/extensions/src/tests/enum.util.spec.ts @@ -46,7 +46,7 @@ describe('Enum Utils', () => { {name:'foo', value: 'number', expected: 1}, {name:'bar', value: 'number', expected: 2}, {name:'baz', value: 'number', expected: 3} - ])('',({name, value, expected})=>{ + ])('should create an enum that returns $expected when $name $value is accessed',({name, value, expected})=>{ expect(enumFromFields[name][value]).toBe(expected); }) }); From 4067834df0001735b809b8340d94d8f87f321fcc Mon Sep 17 00:00:00 2001 From: Sinan997 Date: Fri, 22 Sep 2023 10:23:47 +0300 Subject: [PATCH 7/8] Remove file --- .vscode/settings.json | 2 -- 1 file changed, 2 deletions(-) delete mode 100644 .vscode/settings.json diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index e02aef276e..0000000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,2 +0,0 @@ -{ -} \ No newline at end of file From 755836457666fce4e1809400839d05d9b44f1a0b Mon Sep 17 00:00:00 2001 From: Sinan997 Date: Fri, 22 Sep 2023 16:50:51 +0300 Subject: [PATCH 8/8] mock compare function --- .../core/src/lib/tests/routes.service.spec.ts | 19 ++----------------- .../lib/tests/utils/mock-compare-function.ts | 19 +++++++++++++++++++ 2 files changed, 21 insertions(+), 17 deletions(-) create mode 100644 npm/ng-packs/packages/core/src/lib/tests/utils/mock-compare-function.ts diff --git a/npm/ng-packs/packages/core/src/lib/tests/routes.service.spec.ts b/npm/ng-packs/packages/core/src/lib/tests/routes.service.spec.ts index 69935be439..b2ce154421 100644 --- a/npm/ng-packs/packages/core/src/lib/tests/routes.service.spec.ts +++ b/npm/ng-packs/packages/core/src/lib/tests/routes.service.spec.ts @@ -3,6 +3,7 @@ import { take } from 'rxjs/operators'; import { RoutesService } from '../services/routes.service'; import { DummyInjector } from './utils/common.utils'; import { mockPermissionService } from './utils/permission-service.spec.utils'; +import { mockCompareFunction } from './utils/mock-compare-function'; const updateStream$ = new Subject(); export const mockRoutesService = (injectorPayload = {} as { [key: string]: any }) => { @@ -10,23 +11,7 @@ export const mockRoutesService = (injectorPayload = {} as { [key: string]: any } PermissionService: mockPermissionService(), ConfigStateService: { createOnUpdateStream: () => updateStream$ }, OTHERS_GROUP: 'OthersGroup', - SORT_COMPARE_FUNC: (a, b) => { - const aName = a.name; - const bName = b.name; - const aNumber = a.order; - const bNumber = b.order; - - if (!Number.isInteger(aNumber)) return 1; - if (!Number.isInteger(bNumber)) return -1; - - if (aNumber > bNumber) return 1 - if (aNumber < bNumber) return -1 - - if ( aName > bName ) return 1; - if ( aName < bName ) return -1; - - return 0 - }, + SORT_COMPARE_FUNC: mockCompareFunction, ...injectorPayload, }); return new RoutesService(injector); diff --git a/npm/ng-packs/packages/core/src/lib/tests/utils/mock-compare-function.ts b/npm/ng-packs/packages/core/src/lib/tests/utils/mock-compare-function.ts new file mode 100644 index 0000000000..d43adcc2f0 --- /dev/null +++ b/npm/ng-packs/packages/core/src/lib/tests/utils/mock-compare-function.ts @@ -0,0 +1,19 @@ +import { ABP } from '@abp/ng.core'; + +export const mockCompareFunction = (a: ABP.Route, b: ABP.Route) => { + const aName = a.name; + const bName = b.name; + const aNumber = a.order; + const bNumber = b.order; + + if (!Number.isInteger(aNumber)) return 1; + if (!Number.isInteger(bNumber)) return -1; + + if (aNumber > bNumber) return 1 + if (aNumber < bNumber) return -1 + + if ( aName > bName ) return 1; + if ( aName < bName ) return -1; + + return 0 +} \ No newline at end of file