angular-cli icon indicating copy to clipboard operation
angular-cli copied to clipboard

Angular CLI 15.1.4 breaks ng test with jsdom because CLI is loading JavaScript bundles as module

Open andrewpmontgomery opened this issue 2 years ago • 0 comments

Command

test

Is this a regression?

  • [X] Yes, this behavior used to work in the previous version

The previous version in which this bug was not present was

15.1.3

Description

I have a standard Angular project, using Karma & Jasmine for unit tests. The unit tests run can run in either Chrome or jsdom. I need jsdom because my CI environment doesn't have Chrome (org policy: no browsers on servers).

Angular CLI 15.1.4 introduced a change in https://github.com/angular/angular-cli/pull/24620 wherein Javascript bundles are loaded as modules.

Unfortunately, jsdom doesn't support

Ideally jsdom would add module support; but since that ticket has been open for four years, I'm not holding out much hope. So instead, here's my request:

REQUEST: Could Angular CLI add a flag to add/omit type="module" ?

My workaround for now is patching jsdom (using patch-package) to ignore the type attribute on

Minimal Reproduction

Clone my git repo: https://github.com/andrewpmontgomery/angular-15-jsdom

  1. Run npm install
  2. Run npm run test:chrome and all three tests should pass.
  3. Run npm run test:jsdom and it should time-out.
  4. Run npm run patch-package
  5. Run npm run test:jsdom again and now it works.

Exception or Error

No response

Your Environment

Angular CLI: 15.2.0
Node: 16.19.1
Package Manager: npm 8.19.3
OS: win32 x64

Angular: 15.2.0
... animations, cli, common, compiler, compiler-cli, core, forms
... platform-browser, platform-browser-dynamic, router

Package                         Version
---------------------------------------------------------
@angular-devkit/architect       0.1502.0
@angular-devkit/build-angular   15.2.0
@angular-devkit/core            15.2.0
@angular-devkit/schematics      15.2.0
@schematics/angular             15.2.0
rxjs                            7.8.0
typescript                      4.9.5

Anything else relevant?

No response

andrewpmontgomery avatar Feb 24 '23 16:02 andrewpmontgomery