UNPKG

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
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); })