UNPKG

@dxdeveloperexperience/hygie

Version:

Hygie is an easy-to-use Open-Source REST API allowing you to interact with GIT events. This NestJS API expose a set of customizable rules to automate your project's life cycle.

92 lines (86 loc) 2.42 kB
import { getAllOptions } from './getAllOptions'; import { Constants } from '../utils/constants'; const fs = require('fs-extra'); jest.mock('fs-extra'); beforeEach(() => { jest.clearAllMocks(); }); describe('getAllOptions', () => { it('should return an array of option objects', () => { fs.readFileSync .mockReturnValue(`import { Constants } from '../utils/constants'; /** * Options supported in the .rulesrc file */ export class RulesOptions { /** * Specify if the process continue when a rule does not succeed */ executeAllRules: boolean = false; /** * Specify if rules will be processed */ enableRules: boolean = true; /** * Specify if groups will be processed */ enableGroups: boolean = true; /** * Specify if execute a runnable only once with the result of all rules */ allRuleResultInOne: boolean = false; /** * Cron Expression used in cron file */ cron: string = Constants.cronExpression; constructor(r?: RulesOptions) { if (r !== undefined && r !== null) { this.executeAllRules = typeof r.executeAllRules === 'undefined' ? this.executeAllRules : r.executeAllRules; this.enableRules = typeof r.enableRules === 'undefined' ? this.enableRules : r.enableRules; this.enableGroups = typeof r.enableGroups === 'undefined' ? this.enableGroups : r.enableGroups; this.allRuleResultInOne = typeof r.allRuleResultInOne === 'undefined' ? this.allRuleResultInOne : r.allRuleResultInOne; this.cron = typeof r.cron === 'undefined' ? this.cron : r.cron; } } } `); expect(getAllOptions()).toEqual([ { name: 'executeAllRules', value: false, tooltip: 'Specify if the process continue when a rule does not succeed', }, { name: 'enableRules', value: true, tooltip: 'Specify if rules will be processed', }, { name: 'enableGroups', value: true, tooltip: 'Specify if groups will be processed', }, { name: 'allRuleResultInOne', value: false, tooltip: 'Specify if execute a runnable only once with the result of all rules', }, { name: 'cron', value: Constants.cronExpression, tooltip: 'Cron Expression used in cron file', }, ]); }); });