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
text/typescript
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();
});