Fix last test failure

This commit is contained in:
James M. Greene
2023-12-06 14:51:36 -06:00
parent ed119588ad
commit b687ea25c8

View File

@@ -30,6 +30,8 @@ describe('Deployment', () => {
return 'github-pages' return 'github-pages'
case 'token': case 'token':
return process.env.GITHUB_TOKEN return process.env.GITHUB_TOKEN
case 'reporting_interval':
return 50 // Lower reporting interval to speed up test
default: default:
return process.env[`INPUT_${param.toUpperCase()}`] || '' return process.env[`INPUT_${param.toUpperCase()}`] || ''
} }
@@ -433,6 +435,8 @@ describe('Deployment', () => {
return 'github-pages' return 'github-pages'
case 'token': case 'token':
return process.env.GITHUB_TOKEN return process.env.GITHUB_TOKEN
case 'reporting_interval':
return 50 // Lower reporting interval to speed up test
case 'timeout': case 'timeout':
return MAX_TIMEOUT + 1 return MAX_TIMEOUT + 1
default: default:
@@ -568,7 +572,6 @@ describe('Deployment', () => {
artifactExchangeScope.done() artifactExchangeScope.done()
}) })
// TODO: Fix! Consistently fails.
it('enforces max timeout', async () => { it('enforces max timeout', async () => {
process.env.GITHUB_SHA = 'valid-build-version' process.env.GITHUB_SHA = 'valid-build-version'
@@ -634,8 +637,8 @@ describe('Deployment', () => {
return process.env.GITHUB_TOKEN return process.env.GITHUB_TOKEN
case 'error_count': case 'error_count':
return 10 return 10
// case 'reporting_interval': case 'reporting_interval':
// return 50 // The default of 5000 is too long for the test return 50 // Lower the interval for the test
case 'timeout': case 'timeout':
return MAX_TIMEOUT + 1 return MAX_TIMEOUT + 1
default: default:
@@ -643,19 +646,23 @@ describe('Deployment', () => {
} }
}) })
const now = Date.now() // Jump the "current time" by MAX_TIMEOUT ever time Date.now is called
const mockStartTime = now - MAX_TIMEOUT const _now = Date.now
jest let nowCalls = 0
const nowSpy = jest
.spyOn(Date, 'now') .spyOn(Date, 'now')
.mockImplementationOnce(() => mockStartTime) .mockImplementation(() => {
.mockImplementationOnce(() => now) nowCalls++
.mockImplementationOnce(() => now + MAX_TIMEOUT) return _now() + (MAX_TIMEOUT * nowCalls)
})
// Create the deployment // Create the deployment
const deployment = new Deployment() const deployment = new Deployment()
await deployment.create(fakeJwt) await deployment.create(fakeJwt)
await deployment.check() await deployment.check()
nowSpy.mockRestore()
expect(deployment.timeout).toEqual(MAX_TIMEOUT) expect(deployment.timeout).toEqual(MAX_TIMEOUT)
expect(core.error).toBeCalledWith('Timeout reached, aborting!') expect(core.error).toBeCalledWith('Timeout reached, aborting!')
expect(core.setFailed).toBeCalledWith('Timeout reached, aborting!') expect(core.setFailed).toBeCalledWith('Timeout reached, aborting!')