Skip to content

Instantly share code, notes, and snippets.

@phenomnomnominal
Created September 16, 2018 08:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save phenomnomnominal/5db4cf146e93eb023bd61064056b0922 to your computer and use it in GitHub Desktop.
Save phenomnomnominal/5db4cf146e93eb023bd61064056b0922 to your computer and use it in GitHub Desktop.
Full spec for the noFdescribeOrFitRule lint rule
import { tsquery } from '@phenomnomnominal/tsquery';
import { expect } from 'chai';
import { ineeda } from 'ineeda';
import { IOptions, Replacement } from 'tslint';
import { Rule } from './noFdescribeOrFitRule';
describe('noFdescribeOrFitRule', () => {
it('should create a lint error if "fdescribe()" is used', () => {
const sourceFile = tsquery.ast(`
fdescribe();
`);
const rule = new Rule(ineeda<IOptions>({ ruleArguments: [] }));
const errors = rule.apply(sourceFile);
const [error] = errors;
expect(errors.length).to.equal(1);
expect(error.getFailure()).to.include(`Remember to remove "fdescribe" once you have finished working on tests.`);
});
it('should create a lint fix if "fdescribe()" is used', () => {
const sourceFile = tsquery.ast(`
fdescribe();
`);
const rule = new Rule(ineeda<IOptions>({ ruleArguments: [] }));
const errors = rule.apply(sourceFile);
const [error] = errors;
expect(error.hasFix()).to.equal(true);
expect((error.getFix() as Replacement).text).to.equal('describe');
});
it('should create a lint error if "fit()" is used', () => {
const sourceFile = tsquery.ast(`
fit();
`);
const rule = new Rule(ineeda<IOptions>({ ruleArguments: [] }));
const errors = rule.apply(sourceFile);
const [error] = errors;
expect(errors.length).to.equal(1);
expect(error.getFailure()).to.include(`Remember to remove "fit" once you have finished working on tests.`);
});
it('should create a lint fix if "fit()" is used', () => {
const sourceFile = tsquery.ast(`
fit();
`);
const rule = new Rule(ineeda<IOptions>({ ruleArguments: [] }));
const errors = rule.apply(sourceFile);
const [error] = errors;
expect(error.hasFix()).to.equal(true);
expect((error.getFix() as Replacement).text).to.equal('it');
});
it('should not create a lint error if "describe()" is used', () => {
const sourceFile = tsquery.ast(`
describe();
`);
const rule = new Rule(ineeda<IOptions>({ ruleArguments: [] }));
const errors = rule.apply(sourceFile);
expect(errors.length).to.equal(0);
});
it('should not create a lint error if "it()" is used', () => {
const sourceFile = tsquery.ast(`
it();
`);
const rule = new Rule(ineeda<IOptions>({ ruleArguments: [] }));
const errors = rule.apply(sourceFile);
expect(errors.length).to.equal(0);
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment