fix adapters
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
import { beforeEach, describe, expect, it, vi } from 'vitest';
|
||||
import type { Logger } from '@core/shared/application';
|
||||
import { UserId, type SponsorAccount } from '@core/identity';
|
||||
import { InMemorySponsorAccountRepository } from './InMemorySponsorAccountRepository';
|
||||
|
||||
describe('InMemorySponsorAccountRepository', () => {
|
||||
let repository: InMemorySponsorAccountRepository;
|
||||
let logger: Logger;
|
||||
|
||||
const makeAccount = (id: string, sponsorId: string, email: string): SponsorAccount => {
|
||||
return {
|
||||
getId: () => ({ value: id }),
|
||||
getSponsorId: () => sponsorId,
|
||||
getEmail: () => email,
|
||||
} as unknown as SponsorAccount;
|
||||
};
|
||||
|
||||
beforeEach(() => {
|
||||
logger = {
|
||||
debug: vi.fn(),
|
||||
info: vi.fn(),
|
||||
warn: vi.fn(),
|
||||
error: vi.fn(),
|
||||
} as unknown as Logger;
|
||||
|
||||
repository = new InMemorySponsorAccountRepository(logger);
|
||||
repository.clear();
|
||||
});
|
||||
|
||||
it('saves and finds sponsor accounts by id / sponsorId / email', async () => {
|
||||
const account = makeAccount('user-1', 'sponsor-1', 'Sponsor@Example.com');
|
||||
|
||||
await repository.save(account);
|
||||
|
||||
expect(await repository.findById(UserId.fromString('user-1'))).toBe(account);
|
||||
expect(await repository.findBySponsorId('sponsor-1')).toBe(account);
|
||||
expect(await repository.findByEmail('sponsor@example.com')).toBe(account);
|
||||
});
|
||||
|
||||
it('deletes sponsor accounts', async () => {
|
||||
const account = makeAccount('user-del', 'sponsor-del', 'del@example.com');
|
||||
await repository.save(account);
|
||||
|
||||
await repository.delete(UserId.fromString('user-del'));
|
||||
expect(await repository.findById(UserId.fromString('user-del'))).toBeNull();
|
||||
});
|
||||
|
||||
it('seeds via constructor', async () => {
|
||||
const seeded = makeAccount('user-seed', 'sponsor-seed', 'seed@example.com');
|
||||
repository = new InMemorySponsorAccountRepository(logger, [seeded]);
|
||||
|
||||
expect(await repository.findBySponsorId('sponsor-seed')).toBe(seeded);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user