Strategic architecture, tactical design, and testable code principles (SOLID, Clean Architecture, Design Patterns, Testable Design)
97
97%
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Passed
No known issues
Review the following TypeScript module structure and identify all dependency direction violations. The project claims to follow Clean Architecture.
File: src/domain/entities/order.ts
import { Entity, Column, PrimaryGeneratedColumn } from 'typeorm';
import { OrderRepository } from '../../infrastructure/repositories/order-repository';
@Entity()
export class Order {
@PrimaryGeneratedColumn()
id: string;
@Column()
userId: string;
@Column()
total: number;
async save(): Promise<void> {
const repo = new OrderRepository();
await repo.persist(this);
}
}File: src/application/use-cases/create-order.ts
import { PostgresOrderRepository } from '../../infrastructure/repositories/postgres-order-repository';
export class CreateOrderUseCase {
private repo = new PostgresOrderRepository();
async execute(userId: string, items: string[]): Promise<string> {
// ... business logic
await this.repo.save(order);
return order.id;
}
}Produce a VIOLATIONS.md that:
clean-architecture
evals
references
design-patterns
solid-principles
testable-design