singularci
Version:
SingularCI is a DSL transpiler used to generate CI/CD configuration files for existing CI platforms
53 lines (42 loc) • 1.83 kB
text/typescript
import 'reflect-metadata';
import fs from 'fs';
import path from 'path';
import Container from 'typedi';
import DSLParser from '../../../src/Parser/DSLParser';
import Pipeline from '../../../src/SemanticModel/Pipeline';
import { BuildDockerImageFactory } from '../../../src/SemanticModel/Tasks/BuildDockerImage';
import { TriggerFactory } from '../../../src/SemanticModel/Trigger';
import { GitHubConfigGenerator } from '../../../src/Targets/GitHubModule';
import { GitLabConfigGenerator } from '../../../src/Targets/GitLabModule';
let parser: DSLParser;
beforeAll(() => {
Container.import([
GitHubConfigGenerator,
GitLabConfigGenerator,
Pipeline,
BuildDockerImageFactory,
TriggerFactory
]);
Container.set('dslparser.inputFileName', './test/Parser/testfile.yml');
parser = Container.get<DSLParser>('dslparser');
})
test('When the generateConfig method has been run, a CI/CD config file should be generated', () => {
if (fs.existsSync(path.join(process.cwd(), ".gitlab-ci.yml"))) {
fs.rmSync(path.join(process.cwd(), ".gitlab-ci.yml"));
}
expect(fs.existsSync(path.join(process.cwd(), ".gitlab-ci.yml"))).toBe(false);
const gitlabModule = new GitLabConfigGenerator(parser);
gitlabModule.generateConfig();
expect(fs.existsSync(path.join(process.cwd(), ".gitlab-ci.yml"))).toBe(true);
expect(fs.readFileSync(path.join(process.cwd(), ".gitlab-ci.yml"), 'utf8').length).toBeGreaterThan(50);
});
afterAll(() => {
setTimeout(() => {
if (fs.existsSync(path.join(process.cwd(), ".singularci-copy.yml"))) {
fs.rmSync(path.join(process.cwd(), ".singularci-copy.yml"));
}
if (fs.existsSync(path.join(process.cwd(), ".gitlab-ci.yml"))) {
fs.rmSync(path.join(process.cwd(), ".gitlab-ci.yml"));
}
}, 100);
})