Skip to content

Commit

Permalink
Implement remaining tests
Browse files Browse the repository at this point in the history
  • Loading branch information
tyhopp committed Jan 17, 2022
1 parent 860a54c commit fd990b4
Showing 1 changed file with 31 additions and 34 deletions.
65 changes: 31 additions & 34 deletions packages/create-gatsby/src/__tests__/tracking.ts
Original file line number Diff line number Diff line change
@@ -1,59 +1,56 @@
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.skip(`respects the setting of the config store`, async () => {
const store = getConfigStore()
store.set(`telemetry.enabled`, false)
it(`respects the setting of the config store`, async () => {
get.mockImplementationOnce(key => {
if (key === `telemetry.enabled`) {
return false
} else {
return true
}
})
const enabled = isTrackingEnabled()
expect(enabled).toBe(false)
expect(enabled).toBeFalse()
expect(enabled).toBeFalse() // Test result is cached
})

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()
expect(enabled).toBeFalse() // Test result is cached
})

it.skip(`caches the setting for all calls in create-gatsby`, async () => {})
afterAll(() => {
process.env.GATSBY_TELEMETRY_DISABLED = undefined
})
})
})

0 comments on commit fd990b4

Please sign in to comment.