ssube/cautious-journey

View on GitHub
test/TestResolve.ts

Summary

Maintainability
A
0 mins
Test Coverage
A
100%
import { expect } from 'chai';

import { resolveProject } from '../src/resolve.js';
import { TEST_CASES } from './resolve/cases.js';

const TEST_LABELS = ['bar', 'foo'];

describe('resolve labels', () => {
  describe('with empty rule set', () => {
    it('should return the existing labels', async () => {
      const result = resolveProject({
        flags: [],
        initial: [],
        labels: TEST_LABELS,
        states: [],
      });

      expect(result.labels).to.deep.equal(TEST_LABELS);
    });

    it('should not make any changes', async () => {
      const result = resolveProject({
        flags: [],
        initial: [],
        labels: TEST_LABELS,
        states: [],
      });

      expect(result.changes.length).to.equal(0);
    });
  });

  describe('with empty labels', () => {
    it('should return initial labels', async () => {
      const initial = ['bar', 'foo'];
      const result = resolveProject({
        flags: [],
        initial,
        labels: [],
        states: [],
      });

      expect(result.labels).to.deep.equal(initial);
    });
  });

  // procedural tests
  describe('resolver test cases', () => {
    for (const test of TEST_CASES) {
      it(`should resolve ${test.name}`, async () => {
        const actualResult = resolveProject(test.input);
        expect(actualResult).to.deep.include(test.result);
      });
    }
  });
});