/* eslint-env mocha */ /* eslint-disable func-names, prefer-arrow-callback */ /* eslint-disable import/no-absolute-path */ import { expect } from 'chai'; import { composeIberiaTweet } from '/imports/api/ActiveFires/server/tweetFiresInZone'; const tr = (stats) => { const keys = Object.keys(stats); const newStats = []; keys.map((key) => { newStats[key] = { count: stats[key] }; }); return newStats; }; describe('compose tweets of fires', () => { it('No fires', () => { expect(composeIberiaTweet(0, { })).to.equal(''); }); it('a fire in a zone', () => { expect(composeIberiaTweet(1, tr({ Asturias: 1 }))).to.equal('Un #fuego activo en #Asturias'); }); it('some fires in a zone', () => { expect(composeIberiaTweet(4, tr({ Asturias: 4 }))).to.equal('4 #fuegos activos en #Asturias'); }); it('some fires in two zones', () => { expect(composeIberiaTweet(5, tr({ Asturias: 1, Madrid: 4 }))).to.equal('Un #fuego activo en #Asturias y otros 4 en #Madrid'); }); it('some fires in some zones', () => { expect(composeIberiaTweet(8, tr({ Catalunya: 3, Asturias: 1, Madrid: 4 }))).to.equal('3 #fuegos activos en #Catalunya, otro en #Asturias y otros 4 en #Madrid'); }); it('other fires in some zones', () => { expect(composeIberiaTweet(6, tr({ Catalunya: 1, Asturias: 1, Madrid: 4 }))).to.equal('Un #fuego activo en #Catalunya, otro en #Asturias y otros 4 en #Madrid'); }); it('other fires in two zones', () => { expect(composeIberiaTweet(2, tr({ Catalunya: 1, Asturias: 1 }))).to.equal('Un #fuego activo en #Catalunya y otro en #Asturias'); }); it('many fires in many zones', () => { expect(composeIberiaTweet(11, tr({ Cataluña: 3, Cantabria: 1, Andalucia: 4, Galicia: 1, Madrid: 2 }))).to.equal('3 #fuegos activos en #Cataluña, otro en #Cantabria, otros 4 en #Andalucia, otro en #Galicia y otros 2 en #Madrid'); }); });