Files
release-action/__tests__/ArtifactUploader.test.ts
Nick Cipollo f76aaf092f Fix tests
2019-12-12 19:04:42 -05:00

45 lines
1.3 KiB
TypeScript

import { Artifact } from "../src/Artifact"
import { GithubArtifactUploader } from "../src/ArtifactUploader"
import { Releases } from "../src/Releases";
const artifacts = [
new Artifact('a/art1'),
new Artifact('b/art2')
]
const fileContents = Buffer.from('artful facts', 'utf-8')
const contentLength = 42
const uploadMock = jest.fn()
const url = 'http://api.example.com'
jest.mock('fs', () => {
return {
readFileSync: () => fileContents,
statSync: () => { return { size: contentLength } }
};
})
describe('ArtifactUploader', () => {
it('uploads artifacts', () => {
const uploader = createUploader()
uploader.uploadArtifacts(artifacts, url)
expect(uploadMock).toBeCalledTimes(2)
expect(uploadMock)
.toBeCalledWith(url, contentLength, 'raw', fileContents, 'art1')
expect(uploadMock)
.toBeCalledWith(url, contentLength, 'raw', fileContents, 'art2')
})
function createUploader(): GithubArtifactUploader {
const MockReleases = jest.fn<Releases, any>(() => {
return {
getByTag: jest.fn(),
create: jest.fn(),
update: jest.fn(),
uploadArtifact: uploadMock
}
})
return new GithubArtifactUploader(new MockReleases())
}
});