* Fixed remaining CodeClimate badges * Added explicit percentage keyword and dropped top level URL * Merged the two badge handlers into one * Removed trailing space * Switched to "dash" URL style * Reinstated top-level URL * Swicthed to use letter as optional keyword * Updated badge examples * Cleaned up * Changed badge label to technical debt * Switched tests to more mainstream projects as previous ones were deleted * Rearranged badge URLs and default formats * Updated examples
81 lines
2.3 KiB
JavaScript
81 lines
2.3 KiB
JavaScript
'use strict';
|
|
|
|
const { test, given, forCases } = require('sazerac');
|
|
const {
|
|
coveragePercentage,
|
|
colorScale,
|
|
letterScore,
|
|
age,
|
|
version
|
|
} = require('./color-formatters');
|
|
|
|
describe('Color formatters', function() {
|
|
const byPercentage = colorScale([Number.EPSILON, 80, 90, 100]);
|
|
|
|
test(byPercentage, () => {
|
|
given(-1).expect('red');
|
|
given(0).expect('red');
|
|
given(0.5).expect('yellow');
|
|
given(1).expect('yellow');
|
|
given(50).expect('yellow');
|
|
given(80).expect('yellowgreen');
|
|
given(85).expect('yellowgreen');
|
|
given(90).expect('green');
|
|
given(100).expect('brightgreen');
|
|
given(101).expect('brightgreen');
|
|
|
|
forCases([-1, 0, 0.5, 1, 50, 80, 85, 90, 100, 101]
|
|
.map(v => given(v).expect(coveragePercentage(v))))
|
|
.should("return '%s', for parity with coveragePercentage()");
|
|
});
|
|
|
|
context('when reversed', function () {
|
|
test(colorScale([7, 30, 180, 365, 730], undefined, true), () => {
|
|
given(3).expect('brightgreen');
|
|
given(7).expect('green');
|
|
given(10).expect('green');
|
|
given(60).expect('yellowgreen');
|
|
given(250).expect('yellow');
|
|
given(400).expect('orange');
|
|
given(800).expect('red');
|
|
});
|
|
});
|
|
|
|
test(letterScore, () => {
|
|
given('A').expect('brightgreen');
|
|
given('B').expect('green');
|
|
given('C').expect('yellowgreen');
|
|
given('D').expect('yellow');
|
|
given('E').expect('orange');
|
|
given('F').expect('red');
|
|
given('Z').expect('red');
|
|
});
|
|
|
|
const monthsAgo = months => {
|
|
const result = new Date();
|
|
// This looks wack but it works.
|
|
result.setMonth(result.getMonth() - months);
|
|
return result;
|
|
};
|
|
test(age, () => {
|
|
given(Date.now()).describe('when given the current timestamp').expect('brightgreen');
|
|
given(new Date()).describe('when given the current Date').expect('brightgreen');
|
|
given(new Date(2001, 1, 1)).describe('when given a Date many years ago').expect('red');
|
|
given(monthsAgo(2)).describe('when given a Date two months ago').expect('yellowgreen');
|
|
given(monthsAgo(15)).describe('when given a Date 15 months ago').expect('orange');
|
|
});
|
|
|
|
test(version, () => {
|
|
given('1.0').expect('blue');
|
|
|
|
forCases([
|
|
given('0.9'),
|
|
given('1.0-Beta'),
|
|
given('1.1-alpha'),
|
|
given('6.0-SNAPSHOT'),
|
|
given('1.0.1-dev'),
|
|
given('2.1.6-prerelease'),
|
|
]).expect('orange');
|
|
});
|
|
});
|