gtfs-alerts-utils
Version:
Utilities to work with GTFSrt Alerts
95 lines (71 loc) • 4.01 kB
JavaScript
;
const { FeedMessage, FeedEntity, Alert } = require('gtfs-realtime-bindings-transit').transit_realtime;
const GtfsAlertsUtils = require('../GtfsAlertsUtils');
const expect = require('chai').expect;
describe('GtfsAlertsUtils text handling', () => {
const TEST_STRING_EN = 'this is a test';
const TEST_STRING_FR = 'ceci n\'est pas un test';
let entity;
beforeEach(() => {
entity = FeedEntity.create();
entity.alert = Alert.create();
});
it('should return null with no value there', () => {
expect(GtfsAlertsUtils.getHeaderText(entity, 'en')).to.equal('');
});
it('should return be able to add translation', () => {
GtfsAlertsUtils.setHeaderText(entity, 'en', TEST_STRING_EN);
expect(GtfsAlertsUtils.getHeaderText(entity, 'en')).to.equal(TEST_STRING_EN);
});
it('should return be able to add multiple translation', () => {
GtfsAlertsUtils.setHeaderText(entity, 'en', TEST_STRING_EN);
GtfsAlertsUtils.setHeaderText(entity, 'fr', TEST_STRING_FR);
expect(GtfsAlertsUtils.getHeaderText(entity, 'fr')).to.equal(TEST_STRING_FR);
expect(GtfsAlertsUtils.getHeaderText(entity, 'en')).to.equal(TEST_STRING_EN);
});
it('should return be able to delete translations', () => {
GtfsAlertsUtils.setHeaderText(entity, 'en', TEST_STRING_EN);
expect(GtfsAlertsUtils.getHeaderText(entity, 'en')).to.equal(TEST_STRING_EN);
GtfsAlertsUtils.deleteHeaderText(entity, 'en');
expect(GtfsAlertsUtils.getHeaderText(entity, 'en')).to.equal('');
});
it('should do nothing when deleting non-existing lang', () => {
expect(GtfsAlertsUtils.getHeaderText(entity, 'en')).to.equal('');
GtfsAlertsUtils.deleteHeaderText(entity, 'en');
expect(GtfsAlertsUtils.getHeaderText(entity, 'en')).to.equal('');
});
it('should getAllLang', () => {
const gtfsrt = FeedMessage.create();
gtfsrt.entity = [entity];
expect(GtfsAlertsUtils.getAllLang(gtfsrt)).to.deep.equal(new Set());
GtfsAlertsUtils.setHeaderText(entity, 'en', TEST_STRING_EN);
expect(GtfsAlertsUtils.getAllLang(gtfsrt)).to.deep.equal(new Set(['en']));
GtfsAlertsUtils.setHeaderText(entity, 'fr', TEST_STRING_FR);
expect(GtfsAlertsUtils.getAllLang(gtfsrt)).to.deep.equal(new Set(['en', 'fr']));
GtfsAlertsUtils.setUrl(entity, 'es', 'es test');
expect(GtfsAlertsUtils.getAllLang(gtfsrt)).to.deep.equal(new Set(['en', 'fr', 'es']));
GtfsAlertsUtils.setHeaderText(entity, 'es', 'es test');
expect(GtfsAlertsUtils.getAllLang(gtfsrt)).to.deep.equal(new Set(['en', 'fr', 'es']));
GtfsAlertsUtils.setDescriptionText(entity, 'de', 'de test');
expect(GtfsAlertsUtils.getAllLang(gtfsrt)).to.deep.equal(new Set(['en', 'fr', 'es', 'de']));
});
it('should getAllLangOfEntity', () => {
expect(GtfsAlertsUtils.getAllLangOfEntity(entity)).to.deep.equal(new Set());
GtfsAlertsUtils.setHeaderText(entity, 'en', TEST_STRING_EN);
expect(GtfsAlertsUtils.getAllLangOfEntity(entity)).to.deep.equal(new Set(['en']));
GtfsAlertsUtils.setHeaderText(entity, 'fr', TEST_STRING_FR);
expect(GtfsAlertsUtils.getAllLangOfEntity(entity)).to.deep.equal(new Set(['en', 'fr']));
GtfsAlertsUtils.setUrl(entity, 'es', 'es test');
expect(GtfsAlertsUtils.getAllLangOfEntity(entity)).to.deep.equal(new Set(['en', 'fr', 'es']));
GtfsAlertsUtils.setHeaderText(entity, 'es', 'es test');
expect(GtfsAlertsUtils.getAllLangOfEntity(entity)).to.deep.equal(new Set(['en', 'fr', 'es']));
GtfsAlertsUtils.setDescriptionText(entity, 'de', 'de test');
expect(GtfsAlertsUtils.getAllLangOfEntity(entity)).to.deep.equal(new Set(['en', 'fr', 'es', 'de']));
});
it('should return fr translation of cause', () => {
expect(GtfsAlertsUtils.getLocalizedCause(Alert.Cause.TECHNICAL_PROBLEM, 'fr')).to.deep.equal('Problème technique');
});
it('should return fr translation of effect', () => {
expect(GtfsAlertsUtils.getLocalizedEffect(Alert.Effect.STOP_MOVED, 'fr')).to.deep.equal('Arrêt déplacé');
});
});