angular / angular/angular-cli

`urlRoot` in `karma.conf.js` can't be set to anything other than the default `/`

Ouverte
#22,132 4 commentaires 1 réaction 0 personnes assignées Voir sur GitHub
area: @angular-devkit/build-angular devkit/build-angular:karma freq1: low severity3: broken type: bug/fix
Langage dominant
TypeScript
Étoiles
27k
Forks
11.8k
Merge moyen
14 h 23 min
PR mergées (30 j)
162

Description

# 🐞 Bug report

### Command (mark with an `x`)

- [ ] new
- [ ] build
- [ ] serve
- [x] test
- [ ] e2e
- [ ] generate
- [ ] add
- [ ] update
- [ ] lint
- [ ] extract-i18n
- [ ] run
- [ ] config
- [ ] help
- [ ] version
- [ ] doc

### Is this a regression?

No.

### Description

Can't set `urlRoot` in `karma.conf.js` to anything other than "/" because:

> Angular CLI uses custom context file, which leads to this bug. It adds ``, which forces context.html to request http://localhost:9876/context.js instead of http://localhost:9876/karma/context.js.

which is described in detail in this issue: https://github.com/karma-runner/karma/issues/3357#issuecomment-634630974.

## 🔬 Minimal Reproduction

Run `ng test` with a `karma.conf.js` that contains a `urlRoot` set to anything but `/`:

```js
{
...,
urlRoot: "newBase"
}

```

## 🔥 Exception or Error

The error that is logged is the following:

```
09 11 2021 23:25:29.766:WARN [web-server]: 404: /_karma_webpack_/context.js
```

## 🌍 Your Environment



Angular CLI: 11.2.0
Node: 14.18.0
OS: darwin x64

Angular: 11.2.14
... common, compiler, compiler-cli, core, forms, localize
... platform-browser, platform-browser-dynamic, router, upgrade
Ivy Workspace: Yes

Package Version
---------------------------------------------------------
@angular-devkit/architect 0.1102.0
@angular-devkit/build-angular 0.1102.0
@angular-devkit/core 11.2.14
@angular-devkit/schematics 11.2.14
@angular/animations 12.2.8
@angular/cdk 11.2.13
@angular/cli 11.2.0
@schematics/angular 11.2.14
@schematics/update 0.1102.0
rxjs 6.6.7
typescript 4.1.6

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Commencez par karma.conf.js et le point d’entrée de ng test, en utilisant la configuration urlRoot indiquée pour reproduire l’échec. Suivez la façon dont le fichier de contexte personnalisé résout context.js lorsque urlRoot est défini sur newBase, et comparez-la au chemin attendu /karma/context.js. Le travail est terminé lorsque l’exécution du test demande le script de contexte sous le urlRoot configuré sans 404.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
angular, javascript, typescript
Domaine
testing
Type d'issue
Bug
Difficulté
3/5
Temps estimé
1-2 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
42/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.