pomeranian-durations
Version:
An immutable duration library based on the ISO-8601 format for durations.
83 lines (80 loc) • 3.22 kB
JavaScript
"use strict";
var _hamjest = require("hamjest");
var _generate_docs_helper = require("./_generate_docs_helper");
var EXAMPLE = [{
id: 'default',
longname: 'default',
name: 'default',
description: 'Finds a unit in a given ISO8601 duration',
meta: {
lineno: 1,
filename: 'find.js',
path: '/Users/tmayrhofer/Projects/pomeranian-durations/src'
}
}, {
id: 'findSeconds',
longname: 'findSeconds',
name: 'findSeconds',
description: 'Finds the seconds in a given ISO8601 duration string.',
params: [[Object]],
examples: ['findSeconds(\'PT1S\') // => 1S', 'findSeconds(\'PT1M\') // => undefined'],
returns: [[Object]],
meta: {
lineno: 53,
filename: 'find.js',
path: '/Users/tmayrhofer/Projects/pomeranian-durations/src'
}
}, {
id: 'findMinutes',
longname: 'findMinutes',
name: 'findMinutes',
description: 'Finds the minutes in a given ISO8601 duration string.',
params: [[Object]],
examples: ['findMinutes(\'PT1S\') // => 1S\nfindMinutes(\'P1Y\') // => undefined'],
returns: [[Object]],
meta: {
lineno: 64,
filename: 'find.js',
path: '/Users/tmayrhofer/Projects/pomeranian-durations/src'
}
}, {
id: 'fromWeeks',
longname: 'fromWeeks',
name: 'fromWeeks',
description: 'Converts a given number to an ISO8601 duration',
params: [[Object]],
examples: ['fromWeeks(1) // => \'PT1W\''],
meta: {
lineno: 72,
filename: 'from.js',
path: '/Users/tmayrhofer/Projects/pomeranian-durations/src'
}
}];
describe('extractCategories', function () {
it('extracts all different categories', function () {
(0, _hamjest.assertThat)((0, _generate_docs_helper.extractCategories)(EXAMPLE), (0, _hamjest.equalTo)(['find', 'from']));
});
});
describe('generateCategoryHeading', function () {
it('generates category heading correctly', function () {
(0, _hamjest.assertThat)((0, _generate_docs_helper.generateCategoryHeading)('find'), (0, _hamjest.equalTo)('<a name="category-find"></a>\n## find'));
});
});
describe('generateHeadings', function () {
it('generates headings correctly for category', function () {
(0, _hamjest.assertThat)((0, _generate_docs_helper.generateHeadings)(EXAMPLE, 'find'), (0, _hamjest.equalTo)(['[findSeconds](https://github.com/webPapaya/pomeranian/blob/master/src/find.js#L53)', '[findMinutes](https://github.com/webPapaya/pomeranian/blob/master/src/find.js#L64)'].join(' | ')));
});
});
describe('generateCategoryNavigation', function () {
it('generates navigation correctly', function () {
(0, _hamjest.assertThat)((0, _generate_docs_helper.generateCategoryNavigation)(EXAMPLE, 'find'), (0, _hamjest.equalTo)('- [find](#category-find)\n- [from](#category-from)'));
});
});
describe('extractCategoryDescription', function () {
it('extracts description for category', function () {
(0, _hamjest.assertThat)((0, _generate_docs_helper.extractCategoryDescription)(EXAMPLE, 'find'), (0, _hamjest.equalTo)('Finds a unit in a given ISO8601 duration'));
});
it('returns empty string when top level description not found', function () {
(0, _hamjest.assertThat)((0, _generate_docs_helper.extractCategoryDescription)(EXAMPLE, 'unknown'), (0, _hamjest.equalTo)(''));
});
});