remote-jobs/test/validation-script.js

50 lines
1.4 KiB
JavaScript
Raw Normal View History

const { expect } = require( 'chai' );
const { runValidationScriptWithFixtures } = require( './lib' );
describe( 'validation script (integration tests)', () => {
it( 'should pass with valid data', () => {
expect( runValidationScriptWithFixtures( 'valid' ) ).to.eql( {
exitCode: 0,
output: [],
} );
} );
it( 'should pass with valid data and incomplete profiles, and count headings', () => {
const env = { REPORT_PROFILE_HEADINGS: 'y' };
expect( runValidationScriptWithFixtures( 'valid-incomplete', env ) ).to.eql( {
exitCode: 0,
output: [
'Profile headings by count (7 total profiles):',
'Company blurb: 7',
'Company size: 4',
'Remote status: 4',
'Region: 4',
'Company technologies: 3',
'How to apply: 3',
'Office locations: 1',
],
} );
} );
it( 'should catch unsorted company names, and count headings', () => {
const env = { REPORT_PROFILE_HEADINGS: 'y' };
expect( runValidationScriptWithFixtures( 'unsorted', env ) ).to.eql( {
exitCode: 2,
output: [
'README.md: Company is listed out of order: "17hats" (should be before "18F")',
'README.md: Company is listed out of order: "&yet" (should be before "17hats")',
'',
'Profile headings by count (4 total profiles):',
'Company blurb: 4',
'Company size: 4',
'Remote status: 4',
'Region: 4',
'Company technologies: 4',
'Office locations: 3',
'How to apply: 4',
],
} );
} );
} );