mirror of
https://github.com/denoland/std.git
synced 2024-11-22 04:59:05 +00:00
57 lines
1.5 KiB
TypeScript
57 lines
1.5 KiB
TypeScript
// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
|
|
|
|
import { expect } from "./expect.ts";
|
|
import { fn } from "./fn.ts";
|
|
import { AssertionError, assertThrows } from "@std/assert";
|
|
|
|
Deno.test("expect().toHaveBeenNthCalledWith()", () => {
|
|
const mockFn = fn();
|
|
|
|
mockFn(1, 2, 3);
|
|
mockFn(4, 5, 6);
|
|
mockFn(7, 8, 9);
|
|
|
|
expect(mockFn).toHaveBeenNthCalledWith(2, 4, 5, 6);
|
|
|
|
expect(mockFn).not.toHaveBeenNthCalledWith(2, 1, 2, 3);
|
|
expect(mockFn).not.toHaveBeenNthCalledWith(1, 4, 5, 6);
|
|
|
|
assertThrows(() => {
|
|
expect(mockFn).toHaveBeenNthCalledWith(2, 1, 2, 3);
|
|
}, AssertionError);
|
|
assertThrows(() => {
|
|
expect(mockFn).toHaveBeenNthCalledWith(1, 4, 5, 6);
|
|
}, AssertionError);
|
|
|
|
assertThrows(() => {
|
|
expect(mockFn).not.toHaveBeenNthCalledWith(2, 4, 5, 6);
|
|
});
|
|
});
|
|
|
|
Deno.test("expect().toHaveBeenNthCalledWith() should throw when mock call does not exist", () => {
|
|
const mockFn = fn();
|
|
|
|
mockFn("hello");
|
|
|
|
expect(mockFn).toHaveBeenNthCalledWith(1, "hello");
|
|
assertThrows(
|
|
() => {
|
|
expect(mockFn).toHaveBeenNthCalledWith(2, "hello");
|
|
},
|
|
AssertionError,
|
|
'Expected the n-th call (n=2) of mock function is with "hello", but the n-th call does not exist',
|
|
);
|
|
});
|
|
|
|
Deno.test("expect().toHaveBeenNthCalledWith() throw when n is not a positive integer", () => {
|
|
const mockFn = fn();
|
|
|
|
assertThrows(
|
|
() => {
|
|
expect(mockFn).toHaveBeenNthCalledWith(0, "hello");
|
|
},
|
|
Error,
|
|
"nth must be greater than 0: received 0",
|
|
);
|
|
});
|