diff --git a/src/app/app.html b/src/app/app.html index 90c6b64..35353d5 100644 --- a/src/app/app.html +++ b/src/app/app.html @@ -1 +1,4 @@ +@if(this.showNotification()) { + +} \ No newline at end of file diff --git a/src/app/app.spec.ts b/src/app/app.spec.ts index d7c96e4..503ff41 100644 --- a/src/app/app.spec.ts +++ b/src/app/app.spec.ts @@ -2,19 +2,29 @@ import { TestBed } from '@angular/core/testing'; import { App } from './app'; import { strings } from './strings'; import { STRINGS_INJECTOR } from './app.config'; +import { Notifier } from './services/notifier'; +import { signal } from '@angular/core'; describe('App', () => { + let notifier: jasmine.SpyObj; + beforeEach(async () => { + notifier = jasmine.createSpyObj(Notifier.name, [], { + notification$: signal(null), + }); await TestBed.configureTestingModule({ imports: [App], - providers: [{ provide: STRINGS_INJECTOR, useValue: strings }], + providers: [ + { provide: STRINGS_INJECTOR, useValue: strings }, + { provide: Notifier, useValue: notifier }, + ], }).compileComponents(); }); it('should create the app', () => { const fixture = TestBed.createComponent(App); const app = fixture.componentInstance; + TestBed.tick(); expect(app).toBeTruthy(); }); - }); diff --git a/src/app/app.ts b/src/app/app.ts index f068902..7e52f4b 100644 --- a/src/app/app.ts +++ b/src/app/app.ts @@ -1,11 +1,15 @@ -import { Component } from '@angular/core'; +import { Component, inject } from '@angular/core'; import { RouterOutlet } from '@angular/router'; +import { Notification } from './components/notification/notification'; +import { Notifier } from './services/notifier'; +import { computed } from '@angular/core'; @Component({ selector: 'app-root', - imports: [RouterOutlet], + imports: [RouterOutlet, Notification], templateUrl: './app.html', styleUrl: './app.scss', }) export class App { - + private readonly notifier = inject(Notifier); + showNotification = computed(() => this.notifier.notification$() !== null); }