Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Angular Unit Test TypeError: this._renderer.addClass is not a function

After updating, my previously passing unit tests now fail with the error: 'TypeError: this._renderer.addClass is not a function' across multiple tests, despite not using or importing the renderer in the component itself. Any insights into this error?

TypeError: this._renderer.addClass is not a function
            at forEach (node_modules/@angular/common/fesm2022/common.mjs:2729:36)
            at Array.forEach (<anonymous>)
            at NgClass._toggleClass (node_modules/@angular/common/fesm2022/common.mjs:2727:36)
            at NgClass._applyStateDiff (node_modules/@angular/common/fesm2022/common.mjs:2705:22)
            at NgClass.ngDoCheck (node_modules/@angular/common/fesm2022/common.mjs:2685:14)
            at DefaultClassDirective.call [as ngDoCheck] (node_modules/@angular/flex-layout/fesm2020/angular-flex-layout-extended.mjs:151:30)
            at callHookInternal (node_modules/@angular/core/fesm2022/core.mjs:3607:14)
            at callHook (node_modules/@angular/core/fesm2022/core.mjs:3638:9)
            at callHooks (node_modules/@angular/core/fesm2022/core.mjs:3589:17)
            at executeInitAndCheckHooks (node_modules/@angular/core/fesm2022/core.mjs:3539:9)
Chrome Headless 121.0.6167.184 (Windows 10): Executed 8 of 230 (1 FAILED) (0 secs / 0.852 secs)


"devDependencies": {
    "@angular-devkit/build-angular": "^17.1.3",
    "@angular/compiler-cli": "17.1.3",
    "@angular/language-service": "^17.1.3",
    "@ngrx/store-devtools": "^17.1.0",
    "@types/jasmine": "^5.1.1",
    "@types/jasminewd2": "^2.0.12",
    "@types/node": "^20.11.17",
    "codelyzer": "^0.0.28",
    "eslint": "^8.56.0",
    "jasmine-core": "~5.1.2",
    "jasmine-spec-reporter": "~7.0.0",
    "karma": "^6.4.2",
    "karma-chrome-launcher": "^3.2.0",
    "karma-coverage": "^2.2.1",
    "karma-coverage-istanbul-reporter": "~3.0.3",
    "karma-jasmine": "^5.1.0",
    "karma-jasmine-html-reporter": "^2.0.0",
    "ts-node": "~10.9.2",
    "typescript": "~5.3.3"
  }

I've identified the source of the issue: it's the block containing [ngClass.lg]="'mrg-rt-10'". When I remove this block, everything works fine. Any insights on this?

<span *ngIf="eventForm.get('all_day').value === false" fxFlex="50%" fxFlex.xs="100%" [ngClass.lg]="'mrg-rt-10'"> </span>
like image 528
rami-sf Avatar asked Jul 06 '26 00:07

rami-sf


1 Answers

My solution is to just individuall do [class.Name]=""

So instead of [ngClass]="{'some-class': true}" you can can the syntax to by [class.some-class]="true" and that fixed my issue. I ran into this article as well about CommonModule missing for standalone components but it did not help me, just simply changing the syntax fixed it for me.

like image 83
Kevin Sar Avatar answered Jul 07 '26 21:07

Kevin Sar



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!