Skip to content

Commit

Permalink
Properly adapt color query test to findAll
Browse files Browse the repository at this point in the history
  • Loading branch information
s1hofmann committed Jun 6, 2023
1 parent 27932bc commit b9d899c
Showing 1 changed file with 45 additions and 3 deletions.
48 changes: 45 additions & 3 deletions lib/screen.class.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import {
ImageFinderInterface,
ImageWriter,
ImageWriterParameters,
LogProviderInterface,
ScreenProviderInterface,
} from "./provider";
import { OptionalSearchParameters } from "./optionalsearchparameters.class";
Expand All @@ -25,8 +26,17 @@ import { Point } from "./point.class";
jest.mock("jimp", () => {});

const searchRegion = new Region(0, 0, 1000, 1000);
const loggingMock = mockPartial<LogProviderInterface>({
debug: jest.fn(),
info: jest.fn(),
warn: jest.fn(),
error: jest.fn(),
});

const providerRegistryMock = mockPartial<ProviderRegistry>({
getLogProvider(): LogProviderInterface {
return loggingMock;
},
getScreen(): ScreenProviderInterface {
return mockPartial<ScreenProviderInterface>({
grabScreenRegion(): Promise<Image> {
Expand All @@ -45,6 +55,12 @@ const providerRegistryMock = mockPartial<ProviderRegistry>({
screenSize(): Promise<Region> {
return Promise.resolve(searchRegion);
},
screenWidth(): Promise<number> {
return Promise.resolve(searchRegion.width);
},
screenHeight(): Promise<number> {
return Promise.resolve(searchRegion.height);
},
});
},
});
Expand All @@ -54,6 +70,32 @@ beforeEach(() => {
});

describe("Screen.", () => {
describe("dimensions", () => {
it("should return the screen width", async () => {
// GIVEN
const SUT = new ScreenClass(providerRegistryMock);

// WHEN
const width = await SUT.width();

// THEN
expect(width).toEqual(searchRegion.width);
expect(loggingMock.debug).toHaveBeenCalledTimes(1);
});

it("should return the screen height", async () => {
// GIVEN
const SUT = new ScreenClass(providerRegistryMock);

// WHEN
const height = await SUT.height();

// THEN
expect(height).toEqual(searchRegion.height);
expect(loggingMock.debug).toHaveBeenCalledTimes(1);
});
});

describe("find", () => {
describe("queries", () => {
it("should choose the correct finder implementation for images", async () => {
Expand Down Expand Up @@ -639,16 +681,16 @@ describe("Screen.", () => {
},
};

const findMatchMock = jest.fn(() => Promise.resolve(matchResult));
const findMatchMock = jest.fn(() => Promise.resolve([matchResult]));
providerRegistryMock.getColorFinder = jest.fn(() =>
mockPartial<ColorFinderInterface>({
findMatch: findMatchMock,
findMatches: findMatchMock,
})
);
providerRegistryMock.getLogProvider = () => new NoopLogProvider();

// WHEN
await SUT.find(needle);
await SUT.findAll(needle);

// THEN
expect(findMatchMock).toHaveBeenCalledTimes(1);
Expand Down

0 comments on commit b9d899c

Please sign in to comment.