Files
cypress/scripts/unit/circle-env-spec.js
2025-03-14 20:56:40 -06:00

60 lines
1.7 KiB
JavaScript

const { expect } = require('chai')
const { _checkCanaries } = require('../circle-env')
describe('circle-env', () => {
let cachedEnv = { ...process.env }
afterEach(() => {
process.env = cachedEnv
})
beforeEach(() => {
process.env = { CI: 'true' }
})
context('with missing canaries', () => {
context('internal PR', () => {
it('fails when neither canary is set', () => {
expect(() => _checkCanaries({ isContributorPR: false })).to.throw('Missing MAIN_CANARY')
})
it('fails when only MAIN_CANARY is set', () => {
process.env.MAIN_CANARY = 'true'
expect(() => _checkCanaries({ isContributorPR: false })).to.throw('Missing CONTEXT_CANARY')
})
it('fails when only CONTEXT_CANARY is set', () => {
process.env.CONTEXT_CANARY = 'true'
expect(() => _checkCanaries({ isContributorPR: false })).to.throw('Missing MAIN_CANARY')
})
})
context('contributor PR', () => {
it('fails when MAIN_CANARY is set', () => {
process.env.MAIN_CANARY = 'true'
expect(() => _checkCanaries({ isContributorPR: true })).to.throw('MAIN_CANARY should not be present in a contributor PR.')
})
it('fails when CONTEXT_CANARY is set', () => {
process.env.CONTEXT_CANARY = 'true'
expect(() => _checkCanaries({ isContributorPR: true })).to.throw('CONTEXT_CANARY should not be present in a contributor PR.')
})
})
})
it('passes with canaries', () => {
process.env.MAIN_CANARY = 'true'
process.env.CONTEXT_CANARY = 'true'
_checkCanaries({ isContributorPR: false })
})
it('passes for contributor PR', () => {
_checkCanaries({ isContributorPR: true })
})
})