ngx-translate-extract/tests/parsers/service.parser.spec.ts

107 lines
3.0 KiB
TypeScript

import { expect } from 'chai';
import { ServiceParser } from '../../src/parsers/service.parser';
class TestServiceParser extends ServiceParser {
public extractTranslateServiceVar(contents: string): string {
return this._extractTranslateServiceVar(contents);
}
}
describe('ServiceParser', () => {
const componentFilename: string = 'test.component.ts';
let parser: TestServiceParser;
beforeEach(() => {
parser = new TestServiceParser();
});
it('should extract variable used for TranslateService', () => {
const contents = `
@Component({ })
export class AppComponent {
public constructor(
_serviceA: ServiceA,
public _serviceB: ServiceB,
protected _translateService: TranslateService
) { }
`;
const messages = parser.extractTranslateServiceVar(contents);
expect(messages).to.equal('_translateService');
});
it('should extract strings in TranslateService\'s get() method', () => {
const contents = `
@Component({ })
export class AppComponent {
public constructor(protected _translateService: TranslateService) { }
public test() {
this._translateService.get('Hello World');
}
`;
const messages = parser.process(componentFilename, contents);
expect(messages).to.deep.equal(['Hello World']);
});
it('should extract strings in TranslateService\'s instant() method', () => {
const contents = `
@Component({ })
export class AppComponent {
public constructor(protected _translateService: TranslateService) { }
public test() {
this._translateService.instant('Hello World');
}
`;
const messages = parser.process(componentFilename, contents);
expect(messages).to.deep.equal(['Hello World']);
});
it('should extract array of strings in TranslateService\'s get() method', () => {
const contents = `
@Component({ })
export class AppComponent {
public constructor(protected _translateService: TranslateService) { }
public test() {
this._translateService.get(['Hello', 'World']);
}
`;
const messages = parser.process(componentFilename, contents);
expect(messages).to.deep.equal(['Hello', 'World']);
});
it('should extract array of strings in TranslateService\'s instant() method', () => {
const contents = `
@Component({ })
export class AppComponent {
public constructor(protected _translateService: TranslateService) { }
public test() {
this._translateService.instant(['Hello', 'World']);
}
`;
const messages = parser.process(componentFilename, contents);
expect(messages).to.deep.equal(['Hello', 'World']);
});
it('should not extract strings in get()/instant() methods of other services', () => {
const contents = `
@Component({ })
export class AppComponent {
public constructor(
protected _translateService: TranslateService,
protected _otherService: OtherService
) { }
public test() {
this._otherService.get('Hello World');
this._otherService.instant('Hi there');
}
`;
const messages = parser.process(componentFilename, contents);
expect(messages).to.deep.equal([]);
});
});