diff --git a/src/amo/components/Addon/index.js b/src/amo/components/Addon/index.js index 300f27dd49e..7b7295543e8 100644 --- a/src/amo/components/Addon/index.js +++ b/src/amo/components/Addon/index.js @@ -226,7 +226,7 @@ export class AddonBase extends React.Component { return (
{ describe('makeI18n', () => { class FakeJed { constructor(i18nData) { - return i18nData; + return { + ...i18nData, + gettext: (key) => key, + }; } } @@ -475,5 +486,24 @@ describe('i18n utils', () => { sinon.assert.calledWith(toLocaleStringSpy, 'fr'); sinon.assert.notCalled(numberFormatSpy); }); + + describe('addonType()', () => { + it('translates internal addon types', () => { + const i18n = utils.makeI18n({}, 'en', FakeJed); + expect(i18n.addonType(ADDON_TYPE_COMPLETE_THEME)).toEqual('theme'); + expect(i18n.addonType(ADDON_TYPE_DICT)).toEqual('dictionary'); + expect(i18n.addonType(ADDON_TYPE_EXTENSION)).toEqual('extension'); + expect(i18n.addonType(ADDON_TYPE_LANG)).toEqual('language pack'); + expect(i18n.addonType(ADDON_TYPE_OPENSEARCH)).toEqual('search plugin'); + expect(i18n.addonType(ADDON_TYPE_THEME)).toEqual('theme'); + }); + + it('throws an error if the given type is not valid', () => { + const i18n = utils.makeI18n({}, 'en', FakeJed); + expect(() => { + i18n.addonType('unknown-type'); + }).toThrowError(/Unknown extension type/); + }); + }); }); });