Angular CLI 15.1.4 breaks ng test with jsdom because CLI is loading JavaScript bundles as module
- Ngôn ngữ chính
- TypeScript
- Star
- 27k
- Fork
- 11.8k
- Merge trung bình
- 14 giờ 23 phút
- Pull request đã merge (30 ngày)
- 162
Mô tả
### 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 ; it simply doesn't load the module scripts. This is a known issue in jsdom - https://github.com/jsdom/jsdom/issues/2475
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 <script type="module">.
### 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
```text
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_
Hướng dẫn đóng góp
Hướng nghiên cứu
Tái hiện vấn đề từ repository được liên kết bằng `npm run test:chrome` và `npm run test:jsdom`, sau đó kiểm tra lệnh `test` của Angular CLI và việc tải JavaScript bundle của lệnh này. Được xem là hoàn tất khi các bài kiểm thử jsdom chạy được mà không có patch, trong khi các bài kiểm thử Chrome vẫn tiếp tục đạt, và có cách để thêm hoặc bỏ `type="module"`.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- angular, typescript
- Lĩnh vực
- cli, testing
- Loại issue
- Lỗi
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 35/100