add route tests for ShuttleResolvers

This commit is contained in:
2025-01-23 15:13:11 -08:00
parent 17dfc18c3b
commit 1abf808e9f

View File

@@ -4,7 +4,7 @@ import { ServerContext } from "../../src/ServerContext";
import { UnoptimizedInMemoryRepository } from "../../src/repositories/UnoptimizedInMemoryRepository"; import { UnoptimizedInMemoryRepository } from "../../src/repositories/UnoptimizedInMemoryRepository";
import { readFileSync } from "fs"; import { readFileSync } from "fs";
import { MergedResolvers } from "../../src/MergedResolvers"; import { MergedResolvers } from "../../src/MergedResolvers";
import { generateMockEtas, generateMockShuttles, generateMockSystems } from "../generators"; import { generateMockEtas, generateMockRoutes, generateMockShuttles, generateMockSystems } from "../generators";
import { IShuttle, ISystem } from "../../src/entities/entities"; import { IShuttle, ISystem } from "../../src/entities/entities";
import assert = require("node:assert"); import assert = require("node:assert");
@@ -160,4 +160,57 @@ describe("ShuttleResolvers", () => {
}); });
}); });
describe("route", () => {
const query = `
query GetShuttleRoute($systemId: ID!, $shuttleId: ID!) {
system(id: $systemId) {
shuttle(id: $shuttleId) {
route {
color
id
name
polylineCoordinates {
latitude
longitude
}
}
}
}
}
`
async function getResponseForQuery() {
return await testServer.executeOperation({
query,
variables: {
systemId: mockSystem.id,
shuttleId: mockShuttle.id,
}
}, {
contextValue: {
repository,
}
});
}
it("returns the route if it exists", async () => {
const mockRoute = generateMockRoutes()[0];
await repository.addOrUpdateRoute(mockRoute);
const response = await getResponseForQuery();
assert(response.body.kind === "single");
expect(response.body.singleResult.errors).toBeUndefined();
expect((response.body.singleResult.data as any).system.shuttle.route.id).toEqual(mockRoute.id);
});
it("returns null if there is no route", async () => {
const response = await getResponseForQuery();
assert(response.body.kind === "single");
expect(response.body.singleResult.errors).toBeUndefined();
expect((response.body.singleResult.data as any).system.shuttle.route).toBeNull();
});
});
}); });