test(260925-bow): Anlagewege tragen die laufende Version ein (rot)

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-09-25 08:49:21 +02:00
parent 187fb76c91
commit 25c8db746a
2 changed files with 86 additions and 2 deletions
+35 -1
View File
@@ -1,4 +1,4 @@
import { beforeEach, describe, expect, it, vi } from 'vitest';
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
import { AdminSeedService } from './admin-seed.service';
/**
@@ -95,6 +95,40 @@ describe('AdminSeedService', () => {
service = new AdminSeedService(prisma, configService, groupsService);
});
afterEach(() => {
vi.unstubAllEnvs();
});
// quick-260925-bow (D-04): der Erst-Administrator bekommt die laufende
// freigegebene Version eingetragen und sieht kein "Was ist neu"-Fenster
// mit Altlasten; auf dev-Staenden null.
it('legt den Erst-Administrator mit lastSeenReleaseVersion der laufenden Version an', async () => {
vi.stubEnv('APP_VERSION', 'v10.2.3-3-gabc1234');
let createdData: any;
prisma.__setUserCreateImpl(async (args: any) => {
createdData = args.data;
return { id: 'u1' };
});
await service.onApplicationBootstrap();
expect(createdData.lastSeenReleaseVersion).toBe('10.2.3');
expect(createdData.role).toBe('SUPER_ADMIN');
});
it('legt den Erst-Administrator auf dev-Staenden mit lastSeenReleaseVersion null an', async () => {
vi.stubEnv('APP_VERSION', 'dev');
let createdData: any;
prisma.__setUserCreateImpl(async (args: any) => {
createdData = args.data;
return { id: 'u1' };
});
await service.onApplicationBootstrap();
expect(createdData).toHaveProperty('lastSeenReleaseVersion', null);
});
it('ruft auf einer frischen Installation in genau dieser Reihenfolge auf: tenant.upsert, ensureDefaultGroup, dann user.create', async () => {
await service.onApplicationBootstrap();