refactor: small test factories (#26862)

This commit is contained in:
Daniel Dietzler
2026-03-12 19:48:49 +01:00
committed by GitHub
parent 3fd24e2083
commit 001d7d083f
18 changed files with 414 additions and 389 deletions
+14 -3
View File
@@ -1,12 +1,16 @@
import { AuthDto } from 'src/dtos/auth.dto';
import { ApiKeyFactory } from 'test/factories/api-key.factory';
import { build } from 'test/factories/builder.factory';
import { SharedLinkFactory } from 'test/factories/shared-link.factory';
import { FactoryBuilder, SharedLinkLike, UserLike } from 'test/factories/types';
import { ApiKeyLike, FactoryBuilder, SharedLinkLike, UserLike } from 'test/factories/types';
import { UserFactory } from 'test/factories/user.factory';
import { newUuid } from 'test/small.factory';
export class AuthFactory {
#user: UserFactory;
#sharedLink?: SharedLinkFactory;
#apiKey?: ApiKeyFactory;
#session?: AuthDto['session'];
private constructor(user: UserFactory) {
this.#user = user;
@@ -20,8 +24,8 @@ export class AuthFactory {
return new AuthFactory(UserFactory.from(dto));
}
apiKey() {
// TODO
apiKey(dto: ApiKeyLike = {}, builder?: FactoryBuilder<ApiKeyFactory>) {
this.#apiKey = build(ApiKeyFactory.from(dto), builder);
return this;
}
@@ -30,6 +34,11 @@ export class AuthFactory {
return this;
}
session(dto: Partial<AuthDto['session']> = {}) {
this.#session = { id: newUuid(), hasElevatedPermission: false, ...dto };
return this;
}
build(): AuthDto {
const { id, isAdmin, name, email, quotaUsageInBytes, quotaSizeInBytes } = this.#user.build();
@@ -43,6 +52,8 @@ export class AuthFactory {
quotaSizeInBytes,
},
sharedLink: this.#sharedLink?.build(),
apiKey: this.#apiKey?.build(),
session: this.#session,
};
}
}