From 9b8c8dec3fb430fd9295fbc6f4011dcbd2c172d3 Mon Sep 17 00:00:00 2001 From: Ty Hopp Date: Mon, 17 Jan 2022 11:37:18 +0800 Subject: [PATCH] Implement remaining tests --- .../create-gatsby/src/__tests__/tracking.ts | 68 ++++++++++--------- 1 file changed, 35 insertions(+), 33 deletions(-) diff --git a/packages/create-gatsby/src/__tests__/tracking.ts b/packages/create-gatsby/src/__tests__/tracking.ts index 13f7e935a7bcb..b4bffb2b5fd45 100644 --- a/packages/create-gatsby/src/__tests__/tracking.ts +++ b/packages/create-gatsby/src/__tests__/tracking.ts @@ -1,59 +1,61 @@ -import { getConfigStore } from "../get-config-store" +let isTrackingEnabled: () => boolean -const mockGetFunction = jest.fn() -const mockSetFunction = jest.fn() +const get = jest.fn() +const set = jest.fn() -jest.mock(`../get-config-store`, () => { +jest.doMock(`../get-config-store`, () => { return { getConfigStore: (): unknown => { return { - items: {}, - set(key: string, value: unknown): void { - mockSetFunction(key, value) - ;(this as any).items[key] = value - }, - get(key: string): unknown { - mockGetFunction(key) - return (this as any).items[key] - }, - - __reset(): void { - ;(this as any).items = {} - }, + get, + set, } }, } }) -let isTrackingEnabled - describe(`isTrackingEnabled`, () => { beforeEach(() => { jest.resetModules() isTrackingEnabled = require(`../tracking`).isTrackingEnabled }) - afterEach(() => { - jest.resetAllMocks() - }) - it(`is enabled by default`, async () => { const enabled = isTrackingEnabled() - expect(enabled).toBe(true) - expect(mockGetFunction).toHaveBeenCalledWith(`telemetry.enabled`) - expect(mockSetFunction).toHaveBeenCalledWith(`telemetry.enabled`, true) + expect(enabled).toBeTrue() }) - // TODO - Implement remaining tests + it(`respects the setting of the config store`, async () => { + get.mockImplementationOnce(key => { + if (key === `telemetry.enabled`) { + return false + } else { + return true + } + }) - it.skip(`respects the setting of the config store`, async () => { - const store = getConfigStore() - store.set(`telemetry.enabled`, false) const enabled = isTrackingEnabled() - expect(enabled).toBe(false) + expect(enabled).toBeFalse() + + const cachedEnabled = isTrackingEnabled() + expect(cachedEnabled).toBeFalse() }) - it.skip(`respects the setting of the environment variable`, async () => {}) + describe(`isTrackingEnabled / process.env.GATSBY_TELEMETRY_DISABLED`, () => { + beforeAll(() => { + process.env.GATSBY_TELEMETRY_DISABLED = `true` + }) + + it(`respects the setting of the environment variable`, async () => { + const enabled = isTrackingEnabled() + expect(enabled).toBeFalse() - it.skip(`caches the setting for all calls in create-gatsby`, async () => {}) + const cachedEnabled = isTrackingEnabled() + expect(cachedEnabled).toBeFalse() + }) + + afterAll(() => { + process.env.GATSBY_TELEMETRY_DISABLED = undefined + }) + }) })