Files
shields/services/github/github-directory-file-count.spec.js
Hubert Jagodziński 7a19dc40ef Add [GithubDirectoryFileCount] badge (#5705)
* Added GithubDirectoryFileCount badge

* Additional information on a schema

* Update services/github/github-directory-file-count.service.js

Co-authored-by: Caleb Cartwright <calebcartwright@users.noreply.github.com>

* Update services/github/github-directory-file-count.service.js

Co-authored-by: Caleb Cartwright <calebcartwright@users.noreply.github.com>

* Update services/github/github-directory-file-count.service.js

Co-authored-by: Caleb Cartwright <calebcartwright@users.noreply.github.com>

* More examples

* Moved isArray check to transform method

* Using isMetric for validation

* Added documentaion on type and extension parameters

* Moved a couple of service tests to unit tests

* extension is applicable for type file only

* Note on GitHub API limit

* Using metric helper for a count formatting

Co-authored-by: Caleb Cartwright <calebcartwright@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-10-18 14:30:15 +00:00

68 lines
1.7 KiB
JavaScript

'use strict'
const { expect } = require('chai')
const { test, given } = require('sazerac')
const { InvalidParameter } = require('..')
const GithubDirectoryFileCount = require('./github-directory-file-count.service')
describe('GithubDirectoryFileCount', function () {
const contents = [
{ path: 'a', type: 'dir' },
{ path: 'b', type: 'dir' },
{ path: 'c.js', type: 'file' },
{ path: 'd.js', type: 'file' },
{ path: 'e.txt', type: 'file' },
{ path: 'f', type: 'submodule' },
]
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'
)
})
})