mirror of
https://github.com/cypress-io/cypress.git
synced 2026-01-01 20:19:58 -06:00
* chore: fix get-published-artifact scripts [run ci] * update unit test, check linux-arm workflow [run ci] * circle workflow getting cached?
59 lines
3.2 KiB
JavaScript
59 lines
3.2 KiB
JavaScript
const getPublishedArtifactsModule = require('../../binary/get-published-artifacts')
|
|
const sinon = require('sinon')
|
|
const { expect } = require('chai')
|
|
|
|
const mockArtifacts = [
|
|
{ url: '/', path: '~/cypress/binary-url.json' },
|
|
{ url: '/', path: '~/cypress/npm-package-url.json' },
|
|
{ url: '/', path: '~/cypress/cypress.zip' },
|
|
{ url: '/', path: '~/cypress/cypress.tgz' },
|
|
]
|
|
|
|
describe('get-published-artifacts', () => {
|
|
afterEach(() => {
|
|
sinon.reset()
|
|
})
|
|
|
|
it('downloads artifacts', async () => {
|
|
process.env.SHOULD_PERSIST_ARTIFACTS = true
|
|
|
|
const getPipelineIdStub = sinon.stub(getPublishedArtifactsModule, 'getPipelineId').returns('abc123')
|
|
const getWorkflowsStub = sinon.stub(getPublishedArtifactsModule, 'getWorkflows').returns([{ id: 'my-workflow', name: 'linux-x64', status: 'success' }])
|
|
const getWorkflowJobsStub = sinon.stub(getPublishedArtifactsModule, 'getWorkflowJobs').returns([{ name: 'linux-amd-publish-binary', job_number: 2 }])
|
|
const getJobArtifactsStub = sinon.stub(getPublishedArtifactsModule, 'getJobArtifacts').returns(mockArtifacts)
|
|
const downloadArtifactStub = sinon.stub(getPublishedArtifactsModule, 'downloadArtifact')
|
|
|
|
await getPublishedArtifactsModule.run(['--pipelineInfo', 'foo', '--platformKey', 'linux-x64'])
|
|
|
|
expect(getPipelineIdStub).to.have.been.calledWith('foo')
|
|
expect(getWorkflowsStub).to.have.been.calledWith('abc123')
|
|
expect(getWorkflowJobsStub).to.have.been.calledWith('my-workflow')
|
|
expect(getJobArtifactsStub).to.have.been.calledWith(2)
|
|
expect(downloadArtifactStub.getCalls()).to.have.length(4)
|
|
expect(downloadArtifactStub).to.have.been.calledWith('/', '~/cypress/binary-url.json')
|
|
expect(downloadArtifactStub).to.have.been.calledWith('/', '~/cypress/npm-package-url.json')
|
|
expect(downloadArtifactStub).to.have.been.calledWith('/', '~/cypress/cypress.zip')
|
|
expect(downloadArtifactStub).to.have.been.calledWith('/', '~/cypress/cypress.tgz')
|
|
})
|
|
|
|
it('URLs are not fetched if SHOULD_PERSIST_ARTIFACTS is false', async () => {
|
|
process.env.SHOULD_PERSIST_ARTIFACTS = ''
|
|
|
|
const getPipelineIdStub = sinon.stub(getPublishedArtifactsModule, 'getPipelineId').returns('abc123')
|
|
const getWorkflowsStub = sinon.stub(getPublishedArtifactsModule, 'getWorkflows').returns([{ id: 'my-workflow', name: 'linux-x64', status: 'success' }])
|
|
const getWorkflowJobsStub = sinon.stub(getPublishedArtifactsModule, 'getWorkflowJobs').returns([{ name: 'publish-binary', job_number: 2 }])
|
|
const getJobArtifactsStub = sinon.stub(getPublishedArtifactsModule, 'getJobArtifacts').returns(mockArtifacts)
|
|
const downloadArtifactStub = sinon.stub(getPublishedArtifactsModule, 'downloadArtifact')
|
|
|
|
await getPublishedArtifactsModule.run(['--pipelineInfo', 'foo'])
|
|
|
|
expect(getPipelineIdStub).to.have.been.calledWith('foo')
|
|
expect(getWorkflowsStub).to.have.been.calledWith('abc123')
|
|
expect(getWorkflowJobsStub).to.have.been.calledWith('my-workflow')
|
|
expect(getJobArtifactsStub).to.have.been.calledWith(2)
|
|
expect(downloadArtifactStub.getCalls()).to.have.length(2)
|
|
expect(downloadArtifactStub).to.have.been.calledWith('/', '~/cypress/cypress.zip')
|
|
expect(downloadArtifactStub).to.have.been.calledWith('/', '~/cypress/cypress.tgz')
|
|
})
|
|
})
|