singularci
Version:
SingularCI is a DSL transpiler used to generate CI/CD configuration files for existing CI platforms
77 lines • 3.75 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const Pipeline_1 = __importDefault(require("../../src/SemanticModel/Pipeline"));
const Stage_1 = __importDefault(require("../../src/SemanticModel/Stage"));
const Targets_1 = require("../../src/SemanticModel/Targets");
const Trigger_1 = require("../../src/SemanticModel/Trigger");
const Variables_1 = __importDefault(require("../../src/SemanticModel/Variables"));
let pipeline;
let trigger;
let variables;
let platformTargets;
const triggerFactory = new Trigger_1.TriggerFactory();
const variablesFactory = new Variables_1.default();
const targetsFactory = new Targets_1.TargetsFactory();
const stageFactory = new Stage_1.default();
beforeEach(() => {
trigger = triggerFactory.createTrigger();
variables = variablesFactory.createVariables();
platformTargets = targetsFactory.createTargets();
pipeline = new Pipeline_1.default(trigger, platformTargets, variables);
});
it('should be possible to change the trigger object on a pipeline', () => {
const oldTrigger = trigger;
const newTrigger = triggerFactory.createTrigger();
oldTrigger.addBranch('old-trigger-branch');
oldTrigger.addType('push');
newTrigger.addBranch('new-trigger-branch');
newTrigger.addType('push');
pipeline.setTrigger(newTrigger);
expect(pipeline.getTrigger()).not.toBe(oldTrigger);
});
it('should be possible to change the variables object on a pipeline', () => {
const oldVariables = variables;
const newVariables = variablesFactory.createVariables();
oldVariables.addVariable('old-variable-key', 'old-variable-value');
newVariables.addVariable('new-variable-key', 'new-variable-value');
pipeline.setVariables(newVariables);
expect(pipeline.getVariables()).not.toBe(oldVariables);
});
it('should be possible to change the targets object on a pipeline', () => {
const oldTargets = platformTargets;
const newTargets = targetsFactory.createTargets();
oldTargets.addTarget('GitHub');
newTargets.addTarget('GitLab');
pipeline.setPlatformTargets(newTargets);
expect(pipeline.getPlatformTargets()).not.toBe(oldTargets);
});
it('should be possible to add stages to a pipeline', () => {
const stage1 = stageFactory.createStage("stage1", [], [], "ubuntu-latest");
const stage2 = stageFactory.createStage("stage2", [], [], "ubuntu-latest");
pipeline.addStage(stage1);
pipeline.addStage(stage2);
expect(pipeline.getStages().length).toBe(2);
});
test('when the reset method is called, all fields should be reset', () => {
const stage = stageFactory.createStage("stage1", [], [], "ubuntu-latest");
pipeline.addStage(stage);
trigger.addBranch('master');
trigger.addType('push');
variables.addVariable('key', 'value');
platformTargets.addTarget('GitHub');
expect(pipeline.getTrigger().getBranches()).toHaveLength(1);
expect(pipeline.getTrigger().getTypes()).toHaveLength(1);
expect(pipeline.getVariables().getVariables()).toEqual({ key: 'value' });
expect(pipeline.getPlatformTargets().getTargets()).toHaveLength(1);
expect(pipeline.getStages().length).toBe(1);
pipeline.reset();
expect(pipeline.getTrigger().getBranches()).toHaveLength(0);
expect(pipeline.getTrigger().getTypes()).toHaveLength(0);
expect(pipeline.getVariables().getVariables()).toEqual({});
expect(pipeline.getPlatformTargets().getTargets()).toHaveLength(0);
expect(pipeline.getStages().length).toBe(0);
});
//# sourceMappingURL=Pipeline.test.js.map