Home Reference Source Test

test/index.test.js

'use strict';

const TestTable = require('../src');

test('TestTable constructor empty', () => {
  let test= new TestTable();
  expect(test.data.length).toBe(0);
});

test('TestTable constructor', () => {
  const testData = [
    {input: 'foo', expected: 1},
    {input: 'bar', expected: 2},
  ];
  let test= new TestTable(testData);
  expect(test.data.length).toBe(2);
  expect(test.data[0].input).toBe('foo');
  expect(test.data[0].expected).toBe(1);
  expect(test.data[1].input).toBe('bar');
  expect(test.data[1].expected).toBe(2);
});

test('TestTable run', () => {
  const testData = [
    {input: 'foo', expected: 1},
    {input: 'bar', expected: 2},
  ];
  let test= new TestTable(testData);
  test.run((index, data) => {
    expect(data.input).toBe(testData[index].input);
    expect(data.expected).toBe(testData[index].expected);
  });
});

test('TestTable run with skip', () => {
  const testData = [
    {input: 'foo', expected: 1, skip: true},
    {input: 'bar', expected: 2},
  ];
  let test= new TestTable(testData);
  test.run((index, data) => {
    expect(index).toBe(1);
    expect(data.input).toBe('bar');
    expect(data.expected).toBe(2);
  });
});

test('TestTable run with only', () => {
  const testData = [
    {input: 'foo', expected: 1, only: true},
    {input: 'bar', expected: 2},
  ];
  let test= new TestTable(testData);
  test.run((index, data) => {
    expect(index).toBe(0);
    expect(data.input).toBe('foo');
    expect(data.expected).toBe(1);
  });
});