Skip to content

Commit bfd5943

Browse files
committed
test(core): cover setFallbackLang participation in isLoading
Three new cases in use-rollback.spec.ts: - setFallbackLang flips isLoading true while in flight, false on success - setFallbackLang settles isLoading to false on loader error - isLoading composes use() + setFallbackLang() in parallel: stays true while either is pending, flips false only once both settle
1 parent 8b470ae commit bfd5943

34 files changed

Lines changed: 10296 additions & 7717 deletions

docs/proposal-providers-and-scoping.md

Lines changed: 49 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -273,39 +273,39 @@ The module-based API (`TranslateModule.forRoot()` / `forChild()`) is removed. Th
273273
```typescript
274274
// Before (module-based)
275275
@NgModule({
276-
imports: [
277-
TranslateModule.forRoot({
278-
defaultLang: "en",
279-
useDefaultLang: true,
280-
loader: {
281-
provide: TranslateLoader,
282-
useFactory: (http: HttpClient) => new TranslateHttpLoader(http),
283-
deps: [HttpClient]
284-
}
285-
})
286-
]
276+
imports: [
277+
TranslateModule.forRoot({
278+
defaultLang: "en",
279+
useDefaultLang: true,
280+
loader: {
281+
provide: TranslateLoader,
282+
useFactory: (http: HttpClient) => new TranslateHttpLoader(http),
283+
deps: [HttpClient],
284+
},
285+
}),
286+
],
287287
})
288288
export class AppModule {}
289289

290290
// After (works in both standalone and module-based apps)
291291
@NgModule({
292-
providers: [
293-
provideTranslateService({
294-
fallbackLang: "en", // replaces defaultLang + useDefaultLang
295-
loader: provideTranslateHttpLoader()
296-
})
297-
]
292+
providers: [
293+
provideTranslateService({
294+
fallbackLang: "en", // replaces defaultLang + useDefaultLang
295+
loader: provideTranslateHttpLoader(),
296+
}),
297+
],
298298
})
299299
export class AppModule {}
300300

301301
// Or in standalone app
302302
bootstrapApplication(AppComponent, {
303-
providers: [
304-
provideTranslateService({
305-
fallbackLang: "en",
306-
loader: provideTranslateHttpLoader()
307-
})
308-
]
303+
providers: [
304+
provideTranslateService({
305+
fallbackLang: "en",
306+
loader: provideTranslateHttpLoader(),
307+
}),
308+
],
309309
});
310310
```
311311

@@ -314,39 +314,39 @@ bootstrapApplication(AppComponent, {
314314
```typescript
315315
// Before (module-based)
316316
@NgModule({
317-
imports: [
318-
TranslateModule.forChild({
319-
extend: true,
320-
loader: {
321-
provide: TranslateLoader,
322-
useFactory: (http: HttpClient) => new TranslateHttpLoader(http, "./feature-i18n/"),
323-
deps: [HttpClient]
324-
}
325-
})
326-
]
317+
imports: [
318+
TranslateModule.forChild({
319+
extend: true,
320+
loader: {
321+
provide: TranslateLoader,
322+
useFactory: (http: HttpClient) => new TranslateHttpLoader(http, "./feature-i18n/"),
323+
deps: [HttpClient],
324+
},
325+
}),
326+
],
327327
})
328328
export class FeatureModule {}
329329

330330
// After (works in both standalone and module-based apps)
331331
@NgModule({
332-
providers: [
333-
provideChildTranslateService({
334-
loader: provideTranslateHttpLoader({ prefix: "./feature-i18n/" })
335-
})
336-
]
332+
providers: [
333+
provideChildTranslateService({
334+
loader: provideTranslateHttpLoader({ prefix: "./feature-i18n/" }),
335+
}),
336+
],
337337
})
338338
export class FeatureModule {}
339339
```
340340

341341
### Key Changes
342342

343-
| Old API | New API | Notes |
344-
|---------|---------|-------|
345-
| `TranslateModule.forRoot()` | `provideTranslateService()` | Use in `providers` array |
346-
| `TranslateModule.forChild({ extend: true })` | `provideChildTranslateService()` | Connected mode is now the default for child services |
347-
| `TranslateModule.forChild({ isolate: true })` | `provideTranslateService()` | Creates isolated service |
348-
| `defaultLang` + `useDefaultLang: true` | `fallbackLang` | Simplified API |
349-
| `defaultLang` + `useDefaultLang: false` | (removed) | Use `fallbackLang: undefined` if no fallback desired |
343+
| Old API | New API | Notes |
344+
| --------------------------------------------- | -------------------------------- | ---------------------------------------------------- |
345+
| `TranslateModule.forRoot()` | `provideTranslateService()` | Use in `providers` array |
346+
| `TranslateModule.forChild({ extend: true })` | `provideChildTranslateService()` | Connected mode is now the default for child services |
347+
| `TranslateModule.forChild({ isolate: true })` | `provideTranslateService()` | Creates isolated service |
348+
| `defaultLang` + `useDefaultLang: true` | `fallbackLang` | Simplified API |
349+
| `defaultLang` + `useDefaultLang: false` | (removed) | Use `fallbackLang: undefined` if no fallback desired |
350350

351351
### TranslatePipe and TranslateDirective
352352

@@ -366,7 +366,7 @@ These remain unchanged. Import them directly:
366366

367367
## Summary
368368

369-
| Provider | Creates Store | Lang/Fallback | Translation Lookup |
370-
|----------------------------------|------------------|---------------|------------------------|
371-
| `provideTranslateService()` | Yes (isolated) | Own | Own + fallbackLang |
372-
| `provideChildTranslateService()` | Yes (connected) | From parent | Bubbles up to parent |
369+
| Provider | Creates Store | Lang/Fallback | Translation Lookup |
370+
| -------------------------------- | --------------- | ------------- | -------------------- |
371+
| `provideTranslateService()` | Yes (isolated) | Own | Own + fallbackLang |
372+
| `provideChildTranslateService()` | Yes (connected) | From parent | Bubbles up to parent |

0 commit comments

Comments
 (0)