Skip to content

Commit 8c4565b

Browse files
authored
chore: quiet console.error in api.test.ts (#202)
1 parent fcc7aac commit 8c4565b

File tree

4 files changed

+19
-6
lines changed

4 files changed

+19
-6
lines changed

Diff for: eslint.config.mjs

+2
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,8 @@ export default tseslint.config(
9595
"@typescript-eslint/no-empty-function": "off",
9696
// expect.any is untyped and triggers this all the time.
9797
"@typescript-eslint/no-unsafe-assignment": "off",
98+
// sometimes the easiest way to mock a complex test setup is to mutate something
99+
"better-mutation/no-mutation": "off",
98100
/* we do `view = render(); view.getBy()` which also doesn't require destructuring
99101
and has less global mutable state than `screen`. */
100102
"testing-library/prefer-screen-queries": "off",

Diff for: js/test/api.test.ts

+17-3
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,14 @@ describe("get", () => {
123123
});
124124

125125
describe("useApiResult", () => {
126+
let spyConsoleError: jest.SpiedFunction<typeof console.error>;
127+
beforeEach(() => {
128+
spyConsoleError = jest.spyOn(console, "error");
129+
});
130+
afterEach(() => {
131+
spyConsoleError.mockRestore();
132+
});
133+
126134
test("returns loading state", () => {
127135
const RawData = z.string();
128136
const parser = (s: string) => s;
@@ -167,8 +175,10 @@ describe("useApiResult", () => {
167175
const RawData = z.string();
168176
const parser = (s: string) => s;
169177

170-
const { promise, resolve } = PromiseWithResolvers<Response>();
178+
// this test triggers console.error. quiet it.
179+
spyConsoleError.mockImplementationOnce(() => {});
171180

181+
const { promise, resolve } = PromiseWithResolvers<Response>();
172182
jest.mocked(fetch).mockReturnValue(promise);
173183

174184
const { result } = renderHook(useApiResult, {
@@ -192,8 +202,10 @@ describe("useApiResult", () => {
192202
const RawData = z.string();
193203
const parser = (s: string) => s;
194204

195-
const { promise, resolve } = PromiseWithResolvers<Response>();
205+
// this test triggers console.error. quiet it.
206+
spyConsoleError.mockImplementationOnce(() => {});
196207

208+
const { promise, resolve } = PromiseWithResolvers<Response>();
197209
jest.mocked(fetch).mockReturnValue(promise);
198210

199211
const { result } = renderHook(useApiResult, {
@@ -218,8 +230,10 @@ describe("useApiResult", () => {
218230
const RawData = z.string();
219231
const parser = (s: string) => s;
220232

221-
const { promise, resolve } = PromiseWithResolvers<Response>();
233+
// this test triggers console.error. quiet it.
234+
spyConsoleError.mockImplementationOnce(() => {});
222235

236+
const { promise, resolve } = PromiseWithResolvers<Response>();
223237
jest.mocked(fetch).mockReturnValue(promise);
224238

225239
const { result } = renderHook(useApiResult, {

Diff for: js/test/helpers/metadata.ts

-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
/* eslint-disable better-mutation/no-mutation */
21
import { MetaDataKey } from "../../util/metadata";
32

43
export const putMetaData = (key: MetaDataKey, value: string) => {

Diff for: js/test/helpers/promiseWithResolvers.ts

-2
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,7 @@ export const PromiseWithResolvers = <T>(): {
2020
let resolve: ((value: T | PromiseLike<T>) => void) | undefined = undefined;
2121
let reject: ((reason?: unknown) => void) | undefined = undefined;
2222
const promise = new Promise<T>((res, rej) => {
23-
// eslint-disable-next-line better-mutation/no-mutation
2423
resolve = res;
25-
// eslint-disable-next-line better-mutation/no-mutation
2624
reject = rej;
2725
});
2826

0 commit comments

Comments
 (0)