mirror of
https://github.com/brendan-ch/project-inter-server.git
synced 2026-04-17 16:00:32 +00:00
Reorganize tests based on functions
This commit is contained in:
@@ -187,47 +187,66 @@ describe("UnoptimizedInMemoryRepository", () => {
|
||||
});
|
||||
});
|
||||
|
||||
describe("ETA update events", () => {
|
||||
describe("on/addListener", () => {
|
||||
test("notifies listeners if etas have been added or changed", async () => {
|
||||
const mockCallback = jest.fn(); // Jest mock function to simulate a listener
|
||||
repository.on(ShuttleRepositoryEvent.ETA_UPDATED, mockCallback);
|
||||
const mockListener = jest.fn();
|
||||
repository.on(ShuttleRepositoryEvent.ETA_UPDATED, mockListener);
|
||||
|
||||
const mockEtas = generateMockEtas();
|
||||
for (const eta of mockEtas) {
|
||||
await repository.addOrUpdateEta(eta); // Trigger changes in ETAs
|
||||
await repository.addOrUpdateEta(eta);
|
||||
}
|
||||
|
||||
expect(mockCallback).toHaveBeenCalledTimes(mockEtas.length);
|
||||
expect(mockCallback).toHaveBeenCalledWith(mockEtas[0]); // First notification
|
||||
expect(mockCallback).toHaveBeenCalledWith(mockEtas[mockEtas.length - 1]); // Last notification
|
||||
expect(mockListener).toHaveBeenCalledTimes(mockEtas.length);
|
||||
expect(mockListener).toHaveBeenCalledWith(mockEtas[0]); // First notification
|
||||
expect(mockListener).toHaveBeenCalledWith(mockEtas[mockEtas.length - 1]); // Last notification
|
||||
});
|
||||
|
||||
test("does not notify listener if removed", async () => {
|
||||
const mockListener = jest.fn();
|
||||
repository.on(ShuttleRepositoryEvent.ETA_UPDATED, mockListener);
|
||||
|
||||
const mockEtas = generateMockEtas();
|
||||
|
||||
repository.off(ShuttleRepositoryEvent.ETA_UPDATED, mockListener);
|
||||
await repository.addOrUpdateEta(mockEtas[0]);
|
||||
expect(mockListener).toHaveBeenCalledTimes(1);
|
||||
});
|
||||
});
|
||||
|
||||
describe("off/removeListener", () => {
|
||||
test("stops notifying listeners after etas have stopped changing", async () => {
|
||||
const mockCallback = jest.fn(); // Jest mock function to simulate a listener
|
||||
repository.on(ShuttleRepositoryEvent.ETA_UPDATED, mockCallback);
|
||||
const mockListener = jest.fn(); // Jest mock function to simulate a listener
|
||||
repository.on(ShuttleRepositoryEvent.ETA_UPDATED, mockListener);
|
||||
|
||||
const mockEtas = generateMockEtas();
|
||||
await repository.addOrUpdateEta(mockEtas[0]);
|
||||
|
||||
repository.off(ShuttleRepositoryEvent.ETA_UPDATED, mockCallback);
|
||||
repository.off(ShuttleRepositoryEvent.ETA_UPDATED, mockListener);
|
||||
|
||||
await repository.addOrUpdateEta(mockEtas[mockEtas.length - 1]);
|
||||
|
||||
expect(mockCallback).toHaveBeenCalledTimes(1);
|
||||
expect(mockCallback).toHaveBeenCalledWith(mockEtas[0]); // First notification
|
||||
expect(mockCallback).not.toHaveBeenCalledWith(mockEtas[mockEtas.length - 1]); // Last notification
|
||||
expect(mockListener).toHaveBeenCalledTimes(1);
|
||||
expect(mockListener).toHaveBeenCalledWith(mockEtas[0]); // First notification
|
||||
expect(mockListener).not.toHaveBeenCalledWith(mockEtas[mockEtas.length - 1]); // Last notification
|
||||
});
|
||||
|
||||
test("does nothing if the listener doesn't exist", async () => {
|
||||
const mockCallback = jest.fn();
|
||||
repository.on(ShuttleRepositoryEvent.ETA_UPDATED, mockCallback);
|
||||
test("does not remove listener if wrong reference", async () => {
|
||||
const mockListener = jest.fn();
|
||||
repository.on(ShuttleRepositoryEvent.ETA_UPDATED, mockListener);
|
||||
|
||||
const mockEtas = generateMockEtas();
|
||||
|
||||
repository.off(ShuttleRepositoryEvent.ETA_UPDATED, () => {});
|
||||
|
||||
await repository.addOrUpdateEta(mockEtas[0]);
|
||||
expect(mockCallback).toHaveBeenCalledTimes(1);
|
||||
|
||||
expect(mockListener).toHaveBeenCalledTimes(1);
|
||||
expect(mockListener).toHaveBeenCalledWith(mockEtas[0]);
|
||||
});
|
||||
})
|
||||
|
||||
describe("ETA update events", () => {
|
||||
});
|
||||
|
||||
describe("getOrderedStopByRouteAndStopId", () => {
|
||||
|
||||
Reference in New Issue
Block a user