adapter tests
Some checks failed
CI / lint-typecheck (pull_request) Failing after 4m51s
CI / tests (pull_request) Has been skipped
CI / contract-tests (pull_request) Has been skipped
CI / e2e-tests (pull_request) Has been skipped
CI / comment-pr (pull_request) Has been skipped
CI / commit-types (pull_request) Has been skipped

This commit is contained in:
2026-01-24 21:39:59 +01:00
parent 1e821c4a5c
commit 838f1602de
29 changed files with 4518 additions and 1 deletions

View File

@@ -0,0 +1,23 @@
import { describe, vi } from 'vitest';
import { InMemoryMediaRepository } from './InMemoryMediaRepository';
import { runMediaRepositoryContract } from '../../../../tests/contracts/media/MediaRepository.contract';
describe('InMemoryMediaRepository Contract Compliance', () => {
runMediaRepositoryContract(async () => {
const logger = {
info: vi.fn(),
debug: vi.fn(),
warn: vi.fn(),
error: vi.fn(),
};
const repository = new InMemoryMediaRepository(logger as any);
return {
repository,
cleanup: async () => {
repository.clear();
}
};
});
});

View File

@@ -0,0 +1,42 @@
import { describe, vi } from 'vitest';
import { TypeOrmMediaRepository } from './TypeOrmMediaRepository';
import { MediaOrmMapper } from '../mappers/MediaOrmMapper';
import { runMediaRepositoryContract } from '../../../../../tests/contracts/media/MediaRepository.contract';
describe('TypeOrmMediaRepository Contract Compliance', () => {
runMediaRepositoryContract(async () => {
// Mocking TypeORM DataSource and Repository for a DB-free contract test
// In a real scenario, this might use an in-memory SQLite database
const ormEntities = new Map<string, any>();
const ormRepo = {
save: vi.fn().mockImplementation(async (entity) => {
ormEntities.set(entity.id, entity);
return entity;
}),
findOne: vi.fn().mockImplementation(async ({ where: { id } }) => {
return ormEntities.get(id) || null;
}),
find: vi.fn().mockImplementation(async ({ where: { uploadedBy } }) => {
return Array.from(ormEntities.values()).filter(e => e.uploadedBy === uploadedBy);
}),
delete: vi.fn().mockImplementation(async ({ id }) => {
ormEntities.delete(id);
}),
};
const dataSource = {
getRepository: vi.fn().mockReturnValue(ormRepo),
};
const mapper = new MediaOrmMapper();
const repository = new TypeOrmMediaRepository(dataSource as any, mapper);
return {
repository,
cleanup: async () => {
ormEntities.clear();
}
};
});
});