add and use generator method for system objects

This commit is contained in:
2025-01-21 15:12:53 -08:00
parent bfd4c40a10
commit 05b3538a91
2 changed files with 26 additions and 18 deletions

10
test/generators.ts Normal file
View File

@@ -0,0 +1,10 @@
import { ISystem } from "../src/entities/entities";
export function generateMockSystems(): ISystem[] {
return [
{ id: "1", name: "System A" },
{ id: "2", name: "System B" },
{ id: "3", name: "System C" },
];
}

View File

@@ -1,5 +1,7 @@
import { beforeEach, describe, expect, test } from "@jest/globals"; import { beforeEach, describe, expect, test } from "@jest/globals";
import { UnoptimizedInMemoryRepository } from "../../src/repositories/UnoptimizedInMemoryRepository"; import { UnoptimizedInMemoryRepository } from "../../src/repositories/UnoptimizedInMemoryRepository";
import { generateMockSystems } from "../generators";
import { mock } from "node:test";
// For repositories created in the future, reuse core testing // For repositories created in the future, reuse core testing
// logic from here and differentiate setup (e.g. creating mocks) // logic from here and differentiate setup (e.g. creating mocks)
@@ -18,10 +20,7 @@ describe("UnoptimizedInMemoryRepository", () => {
describe("getSystems", () => { describe("getSystems", () => {
test("gets the systems stored in the repository", async () => { test("gets the systems stored in the repository", async () => {
const mockSystems = [ const mockSystems = generateMockSystems();
{ id: "1", name: "System A" },
{ id: "2", name: "System B" },
];
await repository.addOrUpdateSystem(mockSystems[0]); await repository.addOrUpdateSystem(mockSystems[0]);
await repository.addOrUpdateSystem(mockSystems[1]); await repository.addOrUpdateSystem(mockSystems[1]);
@@ -39,11 +38,7 @@ describe("UnoptimizedInMemoryRepository", () => {
describe("getSystemById", () => { describe("getSystemById", () => {
test("gets a system by the ID if it exists", async () => { test("gets a system by the ID if it exists", async () => {
const mockSystems = [ const mockSystems = generateMockSystems();
{ id: "1", name: "System A" },
{ id: "2", name: "System B" },
{ id: "3", name: "System C" },
];
for (const system of mockSystems) { for (const system of mockSystems) {
await repository.addOrUpdateSystem(system); await repository.addOrUpdateSystem(system);
} }
@@ -313,7 +308,8 @@ describe("UnoptimizedInMemoryRepository", () => {
describe("addOrUpdateSystem", () => { describe("addOrUpdateSystem", () => {
test("adds a new system if nonexistent", async () => { test("adds a new system if nonexistent", async () => {
const newSystem = { id: "sys1", name: "System A", millisecondsSinceEpoch: 1620000000000 }; const mockSystems = generateMockSystems();
const newSystem = mockSystems[0];
await repository.addOrUpdateSystem(newSystem); await repository.addOrUpdateSystem(newSystem);
@@ -322,8 +318,10 @@ describe("UnoptimizedInMemoryRepository", () => {
}); });
test("updates an existing system if it exists", async () => { test("updates an existing system if it exists", async () => {
const existingSystem = { id: "sys1", name: "System A", millisecondsSinceEpoch: 1620000000000 }; const mockSystems = generateMockSystems();
const updatedSystem = { id: "sys1", name: "Updated System A", millisecondsSinceEpoch: 1625000000000 }; const existingSystem = mockSystems[0];
const updatedSystem = structuredClone(existingSystem);
updatedSystem.name = "Updated System";
await repository.addOrUpdateSystem(existingSystem); await repository.addOrUpdateSystem(existingSystem);
await repository.addOrUpdateSystem(updatedSystem); await repository.addOrUpdateSystem(updatedSystem);
@@ -445,11 +443,10 @@ describe("UnoptimizedInMemoryRepository", () => {
describe("clearSystemData", () => { describe("clearSystemData", () => {
test("clears all systems from the repository", async () => { test("clears all systems from the repository", async () => {
const system1 = { id: "sys1", name: "System A" }; const mockSystems = generateMockSystems();
const system2 = { id: "sys2", name: "System B" }; for (const system of mockSystems) {
await repository.addOrUpdateSystem(system);
await repository.addOrUpdateSystem(system1); }
await repository.addOrUpdateSystem(system2);
await repository.clearSystemData(); await repository.clearSystemData();
@@ -458,7 +455,8 @@ describe("UnoptimizedInMemoryRepository", () => {
}); });
test("clears system data when the repository has data", async () => { test("clears system data when the repository has data", async () => {
const system = { id: "sys1", name: "System A" }; const mockSystems = generateMockSystems();
const system = mockSystems[0];
await repository.addOrUpdateSystem(system); await repository.addOrUpdateSystem(system);
await repository.clearSystemData(); await repository.clearSystemData();