PavelDeuce/frontend-project-lvl2

View on GitHub
__tests__/index.test.js

Summary

Maintainability
A
0 mins
Test Coverage
import { readFileSync } from 'fs';
import path from 'path';

import gendiff from '../src';
import { formatMapping } from '../src/utils';

const commonPath = path.join(__dirname, '/__fixtures__/');
const configsDirName = 'configs';

describe('Compares two configuration files', () => {
  test.each`
    extname   | format
    ${'json'} | ${formatMapping.nested}
    ${'json'} | ${formatMapping.plain}
    ${'json'} | ${formatMapping.json}
    ${'yaml'} | ${formatMapping.plain}
    ${'yaml'} | ${formatMapping.nested}
    ${'ini'}  | ${formatMapping.nested}
    ${'ini'}  | ${formatMapping.json}
    ${'ini'}  | ${formatMapping.plain}
  `(
    'gendiff before.$extname after.$extname --format $format',

    ({ extname, format }) => {
      const pathToBefore = path.join(commonPath, configsDirName, extname, `before.${extname}`);
      const pathToAfter = path.join(commonPath, configsDirName, extname, `after.${extname}`);
      const pathToResult = path.join(commonPath, 'result', `${format}Result.txt`);
      const result = readFileSync(pathToResult, 'utf-8');
      expect(gendiff(pathToBefore, pathToAfter, format)).toBe(result);
    }
  );

  test('gendiff should return "nested" without param', () => {
    const pathToBefore = path.join(commonPath, configsDirName, 'json', 'before.json');
    const pathToAfter = path.join(commonPath, configsDirName, 'json', 'after.json');
    const pathToResult = path.join(commonPath, 'result', 'nestedResult.txt');
    const result = readFileSync(pathToResult, 'utf-8');
    expect(gendiff(pathToBefore, pathToAfter)).toBe(result);
  });
});