* 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>
68 lines
1.7 KiB
JavaScript
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'
|
|
)
|
|
})
|
|
})
|