Angular CLI 15.1.4 breaks ng test with jsdom because CLI is loading JavaScript bundles as module
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Facilidade para iniciantes
- 35/100
- Tipo de issue
- Bug
- Clareza
- Razoavelmente clara
- Status de atividade
- Estagnada
- Stack de tecnologia
- angular, typescript
Direção de pesquisa
Reproduza o problema do repositório vinculado com npm run test:chrome e npm run test:jsdom e, em seguida, inspecione o comando test do Angular CLI e o carregamento do seu bundle JavaScript. Considera-se concluído quando os testes do jsdom são executados sem o patch, enquanto os testes do Chrome continuam passando, e há uma forma de adicionar ou omitir type="module".
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
Command
test
Is this a regression?
- 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 <script type="module">; 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
- Run
npm install - Run
npm run test:chromeand all three tests should pass. - Run
npm run test:jsdomand it should time-out. - Run
npm run patch-package - Run
npm run test:jsdomagain 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
- Linguagem predominante
- TypeScript
- Estrelas
- 27k
- Forks
- 11.8k
- Merge médio
- 17h 21min
- PRs com merge (30d)
- 181
Guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de angular/angular-cli
-
area: @angular/build gemini-triaged
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 74/100
angular/angular-cli#33955 ·
-
area: @angular/cli gemini-triaged
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
angular/angular-cli#33055 · 1 comentário · 3 reações ·
-
angular/build:library area: @angular/build gemini-triaged
angular/angular-cli#34131 · 1 responsável ·
-
angular/build:library area: @angular/build gemini-triaged
angular/angular-cli#34130 · 1 responsável ·
-
angular/build:library area: @angular/build gemini-triaged
angular/angular-cli#34128 · 1 responsável ·
Todas as issues de angular/angular-cli
Issues semelhantes
-
VerificationGate: ATTRIBUTION quote guard never matches a normal quotation (\b around the quote) Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
danielmiessler/LifeOS#2234 ·
-
T: Bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100
-
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 85/100
-
Mend: dependency security vulnerability untriaged
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 70/100