2 Commits

Author SHA1 Message Date
4b4641e1b7 gittea build 2026-03-16 22:16:06 +01:00
97a299618a vitest implementation 2 2026-03-16 22:13:01 +01:00
3 changed files with 48 additions and 18 deletions

View File

@@ -0,0 +1,26 @@
name: Angular Build
on:
push:
branches:
- dev
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 20
cache: npm
- name: Install dependencies
run: npm ci
- name: Build Angular
run: npm run build

View File

@@ -1,4 +1,4 @@
import {enableProdMode, importProvidersFrom, provideZoneChangeDetection} from '@angular/core'; import {enableProdMode, importProvidersFrom, inject, provideZoneChangeDetection} from '@angular/core';
import {environment} from './environments/environment'; import {environment} from './environments/environment';
import {MAT_DATE_LOCALE} from '@angular/material/core'; import {MAT_DATE_LOCALE} from '@angular/material/core';
@@ -8,10 +8,14 @@ import {AppRoutingModule} from './app/app-routing.module';
import {ServiceWorkerModule} from '@angular/service-worker'; import {ServiceWorkerModule} from '@angular/service-worker';
import {FontAwesomeModule} from '@fortawesome/angular-fontawesome'; import {FontAwesomeModule} from '@fortawesome/angular-fontawesome';
import {AppComponent} from './app/app.component'; import {AppComponent} from './app/app.component';
import {getApp, initializeApp, provideFirebaseApp} from '@angular/fire/app'; import {FirebaseApp, provideFirebaseApp} from '@angular/fire/app';
import {initializeFirestore, persistentLocalCache, persistentMultipleTabManager, provideFirestore} from '@angular/fire/firestore'; import {provideFirestore} from '@angular/fire/firestore';
import {getAuth, provideAuth} from '@angular/fire/auth'; import {provideAuth} from '@angular/fire/auth';
import {getStorage, provideStorage} from '@angular/fire/storage'; import {provideStorage} from '@angular/fire/storage';
import {initializeApp} from 'firebase/app';
import {getAuth} from 'firebase/auth';
import {getStorage} from 'firebase/storage';
import {initializeFirestore, persistentLocalCache, persistentMultipleTabManager} from 'firebase/firestore';
import {UserService} from './app/services/user/user.service'; import {UserService} from './app/services/user/user.service';
declare global { declare global {
@@ -39,9 +43,13 @@ bootstrapApplication(AppComponent, {
FontAwesomeModule FontAwesomeModule
), ),
provideFirebaseApp(() => initializeApp(environment.firebase)), provideFirebaseApp(() => initializeApp(environment.firebase)),
provideAuth(() => getAuth()), provideAuth(() => getAuth(inject(FirebaseApp))),
provideFirestore(() => initializeFirestore(getApp(), {localCache: persistentLocalCache({tabManager: persistentMultipleTabManager()})})), provideFirestore(() =>
provideStorage(() => getStorage()), initializeFirestore(inject(FirebaseApp), {
localCache: persistentLocalCache({tabManager: persistentMultipleTabManager()}),
})
),
provideStorage(() => getStorage(inject(FirebaseApp))),
{provide: MAT_DATE_LOCALE, useValue: 'de-DE'}, {provide: MAT_DATE_LOCALE, useValue: 'de-DE'},
provideAnimations(), provideAnimations(),
], ],

View File

@@ -7,11 +7,9 @@ import {ActivatedRoute, provideRouter} from '@angular/router';
import {BehaviorSubject, Observable, of} from 'rxjs'; import {BehaviorSubject, Observable, of} from 'rxjs';
import {MAT_DIALOG_DATA, MatDialogRef} from '@angular/material/dialog'; import {MAT_DIALOG_DATA, MatDialogRef} from '@angular/material/dialog';
import {provideNativeDateAdapter} from '@angular/material/core'; import {provideNativeDateAdapter} from '@angular/material/core';
import {getApp, getApps, initializeApp, provideFirebaseApp} from '@angular/fire/app'; import {Auth} from '@angular/fire/auth';
import {getAuth, provideAuth} from '@angular/fire/auth'; import {Firestore} from '@angular/fire/firestore';
import {initializeFirestore, provideFirestore} from '@angular/fire/firestore'; import {Storage} from '@angular/fire/storage';
import {getStorage, provideStorage} from '@angular/fire/storage';
import {environment} from './environments/environment';
import {DbService} from './app/services/db.service'; import {DbService} from './app/services/db.service';
type TestingModuleDefinition = Parameters<typeof TestBed.configureTestingModule>[0]; type TestingModuleDefinition = Parameters<typeof TestBed.configureTestingModule>[0];
@@ -43,16 +41,14 @@ type MockFunction = ReturnType<typeof vi.fn> & {
const routeParams$ = new BehaviorSubject<Record<string, unknown>>({}); const routeParams$ = new BehaviorSubject<Record<string, unknown>>({});
const queryParams$ = new BehaviorSubject<Record<string, unknown>>({}); const queryParams$ = new BehaviorSubject<Record<string, unknown>>({});
const defaultFirebaseApp = getApps().length > 0 ? getApp() : initializeApp(environment.firebase);
const defaultTestingProviders: TestingProviderList = [ const defaultTestingProviders: TestingProviderList = [
provideNoopAnimations(), provideNoopAnimations(),
provideNativeDateAdapter(), provideNativeDateAdapter(),
provideRouter([]), provideRouter([]),
provideFirebaseApp(() => defaultFirebaseApp), {provide: Auth, useValue: {}},
provideAuth(() => getAuth(defaultFirebaseApp)), {provide: Firestore, useValue: {}},
provideFirestore(() => initializeFirestore(defaultFirebaseApp, {})), {provide: Storage, useValue: {}},
provideStorage(() => getStorage(defaultFirebaseApp)),
{ {
provide: ActivatedRoute, provide: ActivatedRoute,
useValue: { useValue: {