UNPKG

singularci

Version:

SingularCI is a DSL transpiler used to generate CI/CD configuration files for existing CI platforms

40 lines (30 loc) 1.3 kB
import StageSymbolTable from "../../src/Parser/StageSymbolTable"; import StageFactory from "../../src/SemanticModel/Stage"; let stageSymbolTable: StageSymbolTable; let stageFactory: StageFactory; beforeAll(() => { stageFactory = new StageFactory(); }); beforeEach(() => { stageSymbolTable = StageSymbolTable.getInstance(); }); test('calling getInstance should return a singleton instance', () => { expect(stageSymbolTable).toBeInstanceOf(StageSymbolTable); }); test('calling addStage should add a stage to the table', () => { const stage = stageFactory.createStage('stage', [], [], 'ubuntu-latest'); stageSymbolTable.addStage(stage); expect(stageSymbolTable.getStage(stage.getName())).toBe(stage); }); test('calling getStages should return all stages', () => { const stage1 = stageFactory.createStage('stage1', [], [], 'ubuntu-latest'); stageSymbolTable.addStage(stage1); const stage2 = stageFactory.createStage('stage2', [], [], 'ubuntu-latest'); stageSymbolTable.addStage(stage2); expect(stageSymbolTable.getStages()['stage1']).toBe(stage1); expect(stageSymbolTable.getStages()['stage2']).toBe(stage2); expect(Object.keys(stageSymbolTable.getStages()).length).toBe(2); }); afterEach(() => { stageSymbolTable.reset(); });