criticizer
Version:
Linting for Angular applications, following angular.io/styleguide.
63 lines (57 loc) • 1.92 kB
text/typescript
import {assertFailure, assertSuccess} from './testHelper';
describe('use-pipe-transform-interface', () => {
describe('invalid declaration of pipe', () => {
it(`should fail, when a Pipe is declared without implementing the PipeTransform interface`, () => {
let source = `
export class NewPipe {
transform(url:string):any {
}
}`;
assertFailure('use-pipe-transform-interface', source, {
message: 'The NewPipe class has the Pipe decorator, so it should implement the PipeTransform interface',
startPosition: {
line: 1,
character: 6
},
endPosition: {
line: 5,
character: 7
}
});
});
});
describe('valid use of Pipe with the implementation of the PipeTransform interface', () => {
it(`should succeed when Pipe is declared properly`, () => {
let source = `
export class NewPipe implements PipeTransform{
transform(url:string):any {
}
}`;
assertSuccess('use-pipe-transform-interface', source);
});
it(`should succeed when Pipe is declared properly`, () => {
let source = `
export class NewPipe implements ng.PipeTransform {
transform(url:string):any {
}
}`;
assertSuccess('use-pipe-transform-interface', source);
});
});
describe('valid use of empty class', () => {
it(`should succeed, when Pipe is not used`, () => {
let source = `class App{}`;
assertSuccess('use-pipe-transform-interface', source);
});
});
describe('valid use with @Injectable', () => {
it(`should succeed, when Pipe is not used`, () => {
let source = `
class App{}`;
assertSuccess('use-pipe-transform-interface', source);
});
});
});