Files
shields/services/github/github-directory-file-count.spec.js
Jonah Lawrence e7aecb1a3b Use GraphQL to fix GitHub file count badges [github] (#8112)
* fix: Use graphQL for github file count badges

* Add test for repo not found and update transform tests

* Fix extensions in transform test

* Mark type and extension as required

* Simpler type transform since only file, dir supported
2022-06-22 18:57:56 +01:00

66 lines
1.7 KiB
JavaScript

import { expect } from 'chai'
import { test, given } from 'sazerac'
import { InvalidParameter } from '../index.js'
import GithubDirectoryFileCount from './github-directory-file-count.service.js'
describe('GithubDirectoryFileCount', function () {
const contents = [
{ extension: '', type: 'tree' },
{ extension: '', type: 'tree' },
{ extension: '.js', type: 'blob' },
{ extension: '.js', type: 'blob' },
{ extension: '.txt', type: 'blob' },
{ extension: '', type: 'commit' },
]
test(GithubDirectoryFileCount.transform, () => {
given(contents, {
type: 'dir',
}).expect({
count: 2,
})
given(contents, {
type: 'file',
}).expect({
count: 3,
})
given(contents, {
type: 'file',
extension: 'js',
}).expect({
count: 2,
})
})
it('throws InvalidParameter on receving an object as contents instead of an array', function () {
expect(() => GithubDirectoryFileCount.transform({}, {}))
.to.throw(InvalidParameter)
.with.property('prettyMessage', 'not a directory')
})
it('throws InvalidParameter on receving type dir and extension', function () {
expect(() =>
GithubDirectoryFileCount.transform(contents, {
type: 'dir',
extension: 'js',
})
)
.to.throw(InvalidParameter)
.with.property(
'prettyMessage',
'extension is applicable for type file only'
)
})
it('throws InvalidParameter on receving no type and extension', function () {
expect(() =>
GithubDirectoryFileCount.transform(contents, { extension: 'js' })
)
.to.throw(InvalidParameter)
.with.property(
'prettyMessage',
'extension is applicable for type file only'
)
})
})