Commit 70becd666510bf463fe558fbd32d183afd9e5704

Authored by Victor Costa
1 parent 1963fbdd

Add tests to translator service

src/app/components/translator/translator.service.spec.ts
... ... @@ -17,14 +17,18 @@ describe("Services", () => {
17 17 $q = _$q_;
18 18 }));
19 19  
20   - it("set available languages when change language", (done) => {
21   - let component: TranslatorService = new TranslatorService(
  20 + function createComponent() {
  21 + return new TranslatorService(
22 22 <any>helpers.mocks.$translate,
23 23 <any>helpers.mocks.tmhDynamicLocale,
24 24 <any>helpers.mocks.amMoment,
25 25 <any>helpers.mocks.angularLoad,
26   - helpers.mocks.scopeWithEvents
  26 + $rootScope
27 27 );
  28 + }
  29 +
  30 + it("set available languages when change language", (done) => {
  31 + let component: TranslatorService = createComponent();
28 32 component.availableLanguages = null;
29 33 expect(component.availableLanguages).toBeNull();
30 34 component.changeLanguage('en');
... ... @@ -33,13 +37,7 @@ describe(&quot;Services&quot;, () =&gt; {
33 37 });
34 38  
35 39 it("change the language", (done) => {
36   - let component: TranslatorService = new TranslatorService(
37   - <any>helpers.mocks.$translate,
38   - <any>helpers.mocks.tmhDynamicLocale,
39   - <any>helpers.mocks.amMoment,
40   - <any>helpers.mocks.angularLoad,
41   - helpers.mocks.scopeWithEvents
42   - );
  40 + let component: TranslatorService = createComponent();
43 41 let loadScripPromise = $q.defer();
44 42 loadScripPromise.resolve();
45 43 component["angularLoad"].loadScript = jasmine.createSpy("loadScript").and.returnValue(loadScripPromise.promise);
... ... @@ -57,5 +55,54 @@ describe(&quot;Services&quot;, () =&gt; {
57 55 done();
58 56 });
59 57  
  58 + it("do nothing when call change language with null", (done) => {
  59 + let component: TranslatorService = createComponent();
  60 + component["angularLoad"].loadScript = jasmine.createSpy("loadScript");
  61 + component["tmhDynamicLocale"].set = jasmine.createSpy("set");
  62 + component["$translate"].use = jasmine.createSpy("use");
  63 +
  64 + component.changeLanguage(null);
  65 +
  66 + expect(component["angularLoad"].loadScript).not.toHaveBeenCalled();
  67 + expect(component["tmhDynamicLocale"].set).not.toHaveBeenCalled();
  68 + expect(component["$translate"].use).not.toHaveBeenCalled();
  69 + done();
  70 + });
  71 +
  72 + it("return the current language used by the translator", (done) => {
  73 + let component: TranslatorService = createComponent();
  74 + component["$translate"].use = jasmine.createSpy("use").and.returnValue("en");
  75 + expect(component.currentLanguage()).toEqual("en");
  76 + expect(component["$translate"].use).toHaveBeenCalled();
  77 + done();
  78 + });
  79 +
  80 + it("call translate service when translate a text", (done) => {
  81 + let component: TranslatorService = createComponent();
  82 + component["$translate"].instant = jasmine.createSpy("instant");
  83 + component.translate("text");
  84 + expect(component["$translate"].instant).toHaveBeenCalledWith("text");
  85 + done();
  86 + });
  87 +
  88 + it("change the language when receive an event", (done) => {
  89 + let component: TranslatorService = createComponent();
  90 + component.changeLanguage = jasmine.createSpy("changeLanguage");
  91 + $rootScope.$emit("$localeChangeSuccess");
  92 + expect(component.changeLanguage).toHaveBeenCalled();
  93 + done();
  94 + });
  95 +
  96 + it("use the translate language when receive a change language event and there is no language previously selected", (done) => {
  97 + let component: TranslatorService = createComponent();
  98 + component.changeLanguage = jasmine.createSpy("changeLanguage");
  99 + component["tmhDynamicLocale"].get = jasmine.createSpy("get").and.returnValue(null);
  100 + component["$translate"].use = jasmine.createSpy("use").and.returnValue("en");
  101 +
  102 + $rootScope.$emit("$localeChangeSuccess");
  103 + expect(component["$translate"].use).toHaveBeenCalled();
  104 + expect(component.changeLanguage).toHaveBeenCalledWith("en");
  105 + done();
  106 + });
60 107 });
61 108 });
... ...