UNPKG

angular-t9n

Version:

A translation tool for Angular i18n

50 lines (42 loc) 1.84 kB
import { logging, normalize, Path } from '@angular-devkit/core'; import { SerializationStrategy, TranslationTarget } from '../../../server'; import { MOCK_TARGET_DE } from '../../../test'; import { AngularI18n } from './angular-i18n'; import { AngularJsonPersistenceStrategy } from './angular-json-persistence-strategy'; describe('AngularJsonPersistenceStrategy', () => { class MockAngularI18n implements Partial<AngularI18n> { projectRelativePath(target: TranslationTarget) { return normalize(`${target.language}.xlf`); } update(): Promise<void> { return Promise.resolve(); } } class MockSerializationStrategy implements Partial<SerializationStrategy> { serializedTargets: TranslationTarget[] = []; async serializeTarget(target: TranslationTarget, _path: Path): Promise<void> { this.serializedTargets.push(target); return Promise.resolve(); } } let persistenceStrategy: AngularJsonPersistenceStrategy; let serializationStrategy: MockSerializationStrategy; beforeEach(() => { serializationStrategy = new MockSerializationStrategy(); persistenceStrategy = new AngularJsonPersistenceStrategy( new MockAngularI18n() as AngularI18n, new logging.NullLogger(), serializationStrategy as unknown as SerializationStrategy, ); }); it('should create target', async () => { await persistenceStrategy.create(MOCK_TARGET_DE); expect(serializationStrategy.serializedTargets.length).toEqual(1); expect(serializationStrategy.serializedTargets[0]).toEqual(MOCK_TARGET_DE); }); it('should update a target', async () => { await persistenceStrategy.update(MOCK_TARGET_DE); expect(serializationStrategy.serializedTargets.length).toEqual(1); expect(serializationStrategy.serializedTargets[0]).toEqual(MOCK_TARGET_DE); }); });