Files
Jason RasmussenandCodex b12be9119f feat: passkeys (#32194)
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
(cherry picked from commit 6233a79bf7e4cec11e9ea1094908ff3b228fcbe0)
2026-10-22 05:23:22 +03:00

36 lines
925 B
TypeScript

import { Selectable } from 'kysely';
import { PasskeyTable } from 'src/schema/tables/passkey.table.js';
import { PasskeyLike } from 'test/factories/types.js';
import { newDate, newUuid, newUuidV7 } from 'test/small.factory.js';
export class PasskeyFactory {
private constructor(private value: Selectable<PasskeyTable>) {}
static create(dto: PasskeyLike = {}) {
return PasskeyFactory.from(dto).build();
}
static from(dto: PasskeyLike = {}) {
return new PasskeyFactory({
id: newUuid(),
name: 'Passkey',
credentialId: 'credential-id',
publicKey: Buffer.from('public-key'),
counter: 0,
transports: ['internal'],
backedUp: false,
deviceType: 'singleDevice',
userId: newUuid(),
createdAt: newDate(),
updatedAt: newDate(),
usedAt: null,
updateId: newUuidV7(),
...dto,
});
}
build() {
return { ...this.value };
}
}