UNPKG

gtfs-alerts-utils

Version:
95 lines (71 loc) 4.01 kB
'use strict'; 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é'); }); });