Activities of "MarkusKivisto"

Seems that problem was related if class property was initialized with localized value. Moving instant method usage in constructor fixed this issue.

Yes that code works on our main angular application but not in library projects. Not sure why.

There was another NullInjectorError I ran into: NullInjectorError: R3InjectorError(DynamicTestModule)[InjectionToken QUEUE_MANAGER -> InjectionToken QUEUE_MANAGER]: NullInjectorError: No provider for InjectionToken QUEUE_MANAGER! error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'InjectionToken QUEUE_MANAGER', 'InjectionToken QUEUE_MANAGER' ] }) NullInjectorError: R3InjectorError(DynamicTestModule)[InjectionToken QUEUE_MANAGER -> InjectionToken QUEUE_MANAGER]: NullInjectorError: No provider for InjectionToken QUEUE_MANAGER! at NullInjector.get (node_modules/@angular/core/fesm2020/core.mjs:7498:27) at R3Injector.get (node_modules/@angular/core/fesm2020/core.mjs:7919:33) at R3Injector.get (node_modules/@angular/core/fesm2020/core.mjs:7919:33) at ChainedInjector.get (node_modules/@angular/core/fesm2020/core.mjs:12077:36) at lookupTokenUsingModuleInjector (node_modules/@angular/core/fesm2020/core.mjs:3206:39) at getOrCreateInjectable (node_modules/@angular/core/fesm2020/core.mjs:3251:12) at Module.ɵɵdirectiveInject (node_modules/@angular/core/fesm2020/core.mjs:10034:12) at NodeInjectorFactory.factory (node_modules/@abp/ng.core/fesm2020/abp-ng.core.mjs:57:110) at getNodeInjectable (node_modules/@angular/core/fesm2020/core.mjs:3436:44) at instantiateAllDirectives (node_modules/@angular/core/fesm2020/core.mjs:10990:27)

Similarly I could fix this by providing "QUEUE_MANAGER" in test.

When I provide that token, there still problem with LocalizationService instant method throwing exception:

TypeError: Cannot read properties of undefined (reading 'instant') at new VendorPurchasesComponent (projects/SCM.Analytics/projects/analytics/src/lib/vendor/components/vendor-purchases/vendor-purchases.component.ts:21:54) at NodeInjectorFactory.factory (ng:///VendorPurchasesComponent/ɵfac.js:4:10) at getNodeInjectable (node_modules/@angular/core/fesm2020/core.mjs:3436:44) at createRootComponent (node_modules/@angular/core/fesm2020/core.mjs:12289:35) at ComponentFactory.create (node_modules/@angular/core/fesm2020/core.mjs:12170:25) at apply (node_modules/@angular/core/fesm2020/testing.mjs:24238:51) at _ZoneDelegate.invoke (node_modules/zone.js/dist/zone.js:412:30) at ProxyZoneSpec.onInvoke (node_modules/zone.js/fesm2015/zone-testing.js:287:39) at _ZoneDelegate.invoke (node_modules/zone.js/dist/zone.js:411:56) at Object.onInvoke (node_modules/@angular/core/fesm2020/core.mjs:24178:33)

Providing mock version of LocalizationService does not fix this which is odd.

  • ABP Framework version: v7.0.3
  • UI type: Angular
  • DB provider: EF Core
  • Tiered (MVC) or Identity Server Separated (Angular): yes / no
  • My test code:

import { CoreTestingModule } from '@abp/ng.core/testing'; import { ComponentFixture, TestBed } from '@angular/core/testing'; import { VendorPurchasesComponent } from './vendor-purchases.component';

describe('VendorPurchasesComponent', () => { let component: VendorPurchasesComponent; let fixture: ComponentFixture<VendorPurchasesComponent>;

beforeEach(async () => { await TestBed.configureTestingModule({ declarations: [VendorPurchasesComponent], imports: [CoreTestingModule.withConfig()] }).compileComponents(); });

beforeEach(() => { fixture = TestBed.createComponent(VendorPurchasesComponent); component = fixture.componentInstance; fixture.detectChanges(); });

it('should create', () => { expect(component).toBeTruthy(); }); });

  • Exception message and stack trace: NullInjectorError: R3InjectorError(DynamicTestModule)[InjectionToken Provides currency symbol based for selected locale -> ConfigStateService -> InjectionToken INCUDE_LOCALIZATION_RESOURCES_TOKEN -> InjectionToken INCUDE_LOCALIZATION_RESOURCES_TOKEN]: NullInjectorError: No provider for InjectionToken INCUDE_LOCALIZATION_RESOURCES_TOKEN! error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'InjectionToken Provides currency symbol based for selected locale', 'ConfigStateService', 'InjectionToken INCUDE_LOCALIZATION_RESOURCES_TOKEN', 'InjectionToken INCUDE_LOCALIZATION_RESOURCES_TOKEN' ] }) at NullInjector.get (node_modules/@angular/core/fesm2020/core.mjs:7546:27) at R3Injector.get (node_modules/@angular/core/fesm2020/core.mjs:7967:33) at R3Injector.get (node_modules/@angular/core/fesm2020/core.mjs:7967:33) at injectInjectorOnly (node_modules/@angular/core/fesm2020/core.mjs:633:33) at Module.ɵɵinject (node_modules/@angular/core/fesm2020/core.mjs:637:60) at Object.factory (node_modules/@abp/ng.core/fesm2020/abp-ng.core.mjs:57:110) at R3Injector.hydrate (node_modules/@angular/core/fesm2020/core.mjs:8068:35) at R3Injector.get (node_modules/@angular/core/fesm2020/core.mjs:7956:33) at injectInjectorOnly (node_modules/@angular/core/fesm2020/core.mjs:633:33) at ɵɵinject (node_modules/@angular/core/fesm2020/core.mjs:637:60)

If I add providers:

import { INCUDE_LOCALIZATION_RESOURCES_TOKEN, LocalizationService } from '@abp/ng.core'; import { CoreTestingModule } from '@abp/ng.core/testing'; import { ComponentFixture, TestBed } from '@angular/core/testing'; import { VendorPurchasesComponent } from './vendor-purchases.component';

describe('VendorPurchasesComponent', () => { let component: VendorPurchasesComponent; let fixture: ComponentFixture<VendorPurchasesComponent>;

beforeEach(async () => { await TestBed.configureTestingModule({ declarations: [VendorPurchasesComponent], imports: [CoreTestingModule.withConfig()], providers: [ LocalizationService, { provide: INCUDE_LOCALIZATION_RESOURCES_TOKEN, useValue: false }] }).compileComponents(); });

beforeEach(() => { fixture = TestBed.createComponent(VendorPurchasesComponent); component = fixture.componentInstance; fixture.detectChanges(); });

it('should create', () => { expect(component).toBeTruthy(); }); });

I still get error from LocalizationService instant method:

TypeError: Cannot read properties of undefined (reading 'instant') at new VendorPurchasesComponent (projects/SCM.Analytics/projects/analytics/src/lib/vendor/components/vendor-purchases/vendor-purchases.component.ts:21:54) at NodeInjectorFactory.factory (ng:///VendorPurchasesComponent/ɵfac.js:4:10) at getNodeInjectable (node_modules/@angular/core/fesm2020/core.mjs:3436:44) at createRootComponent (node_modules/@angular/core/fesm2020/core.mjs:12289:35) at ComponentFactory.create (node_modules/@angular/core/fesm2020/core.mjs:12170:25) at apply (node_modules/@angular/core/fesm2020/testing.mjs:24238:51) at _ZoneDelegate.invoke (node_modules/zone.js/dist/zone.js:412:30) at ProxyZoneSpec.onInvoke (node_modules/zone.js/fesm2015/zone-testing.js:287:39) at _ZoneDelegate.invoke (node_modules/zone.js/dist/zone.js:411:56) at Object.onInvoke (node_modules/@angular/core/fesm2020/core.mjs:24178:33)

Showing 1 to 4 of 4 entries
Boost Your Development
ABP Live Training
Packages
See Trainings
Mastering ABP Framework Book
Do you need assistance from an ABP expert?
Schedule a Meeting
Mastering ABP Framework Book
The Official Guide
Mastering
ABP Framework
Learn More
Mastering ABP Framework Book
Made with ❤️ on ABP v9.2.0-preview. Updated on March 19, 2025, 10:09