49 lines
1.2 KiB
JavaScript
49 lines
1.2 KiB
JavaScript
jest.mock("../db/pool", () => ({
|
|
query: jest.fn(),
|
|
}));
|
|
|
|
const pool = require("../db/pool");
|
|
const Stores = require("../models/store.model");
|
|
|
|
describe("store.model", () => {
|
|
beforeEach(() => {
|
|
pool.query.mockReset();
|
|
});
|
|
|
|
test("lists household stores with location manager counts", async () => {
|
|
pool.query.mockResolvedValueOnce({
|
|
rows: [
|
|
{
|
|
location_id: 10,
|
|
id: 10,
|
|
household_id: 1,
|
|
household_store_id: 100,
|
|
name: "Costco",
|
|
location_name: "Default Location",
|
|
is_default: true,
|
|
zone_count: 2,
|
|
item_count: 5,
|
|
display_name: "Costco",
|
|
},
|
|
],
|
|
});
|
|
|
|
const result = await Stores.getHouseholdStores(1);
|
|
|
|
expect(result).toEqual([
|
|
expect.objectContaining({
|
|
id: 10,
|
|
display_name: "Costco",
|
|
zone_count: 2,
|
|
item_count: 5,
|
|
}),
|
|
]);
|
|
expect(pool.query).toHaveBeenCalledWith(
|
|
expect.stringContaining("AS zone_count"),
|
|
[1, "Default Location"]
|
|
);
|
|
expect(pool.query.mock.calls[0][0]).toContain("FROM store_location_zones slz");
|
|
expect(pool.query.mock.calls[0][0]).toContain("FROM household_store_items hsi");
|
|
});
|
|
});
|