Commit 70becd666510bf463fe558fbd32d183afd9e5704
1 parent
1963fbdd
Exists in
master
and in
31 other branches
Add tests to translator service
Showing
1 changed file
with
57 additions
and
10 deletions
Show diff stats
src/app/components/translator/translator.service.spec.ts
@@ -17,14 +17,18 @@ describe("Services", () => { | @@ -17,14 +17,18 @@ describe("Services", () => { | ||
17 | $q = _$q_; | 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 | <any>helpers.mocks.$translate, | 22 | <any>helpers.mocks.$translate, |
23 | <any>helpers.mocks.tmhDynamicLocale, | 23 | <any>helpers.mocks.tmhDynamicLocale, |
24 | <any>helpers.mocks.amMoment, | 24 | <any>helpers.mocks.amMoment, |
25 | <any>helpers.mocks.angularLoad, | 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 | component.availableLanguages = null; | 32 | component.availableLanguages = null; |
29 | expect(component.availableLanguages).toBeNull(); | 33 | expect(component.availableLanguages).toBeNull(); |
30 | component.changeLanguage('en'); | 34 | component.changeLanguage('en'); |
@@ -33,13 +37,7 @@ describe("Services", () => { | @@ -33,13 +37,7 @@ describe("Services", () => { | ||
33 | }); | 37 | }); |
34 | 38 | ||
35 | it("change the language", (done) => { | 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 | let loadScripPromise = $q.defer(); | 41 | let loadScripPromise = $q.defer(); |
44 | loadScripPromise.resolve(); | 42 | loadScripPromise.resolve(); |
45 | component["angularLoad"].loadScript = jasmine.createSpy("loadScript").and.returnValue(loadScripPromise.promise); | 43 | component["angularLoad"].loadScript = jasmine.createSpy("loadScript").and.returnValue(loadScripPromise.promise); |
@@ -57,5 +55,54 @@ describe("Services", () => { | @@ -57,5 +55,54 @@ describe("Services", () => { | ||
57 | done(); | 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 | }); |