|
16 | 16 | allow(I18n).to receive(:translate_without_phraseapp).with(key_name).and_return(i18n_translation) |
17 | 17 | end |
18 | 18 |
|
19 | | - subject { phraseapp_service.translate(*args) } |
20 | | - |
21 | 19 | context "phrase is enabled" do |
22 | 20 | before(:each) do |
23 | 21 | PhraseApp::InContextEditor.enabled = true |
24 | 22 | end |
25 | 23 |
|
26 | 24 | context "resolve: false given as argument" do |
27 | | - let(:args) { [key_name, resolve: false] } |
| 25 | + subject { phraseapp_service.translate(key_name, resolve: false) } |
28 | 26 |
|
29 | 27 | before(:each) do |
30 | 28 | allow(I18n).to receive(:translate_without_phraseapp).with(key_name, resolve: false).and_return(i18n_translation) |
|
34 | 32 | end |
35 | 33 |
|
36 | 34 | context "resolve: true given as argument" do |
37 | | - let(:args) { [key_name, resolve: true] } |
| 35 | + subject { phraseapp_service.translate(key_name, resolve: true) } |
38 | 36 |
|
39 | 37 | it { is_expected.to be_a String } |
40 | 38 | it { is_expected.to eql "{{__phrase_foo.bar__}}" } |
41 | 39 | end |
42 | 40 |
|
43 | 41 | describe "different arguments given" do |
44 | 42 | context "default array given", vcr: {cassette_name: "fetch list of keys filtered by fallback key names"} do |
45 | | - let(:args) { [:key, {default: [:first_fallback, :second_fallback]}] } |
| 43 | + subject { phraseapp_service.translate(:key, default: [:first_fallback, :second_fallback]) } |
| 44 | + |
46 | 45 | it { is_expected.to eql "{{__phrase_key__}}" } |
47 | 46 | end |
48 | 47 |
|
49 | 48 | context "default string given" do |
50 | | - let(:args) { [:key, {default: "first fallback"}] } |
| 49 | + subject { phraseapp_service.translate(:key, default: "first fallback") } |
51 | 50 |
|
52 | 51 | it { is_expected.to eql "{{__phrase_key__}}" } |
53 | 52 | end |
54 | 53 |
|
55 | 54 | context "scope array given" do |
| 55 | + subject { phraseapp_service.translate(:key, scope: [:context]) } |
56 | 56 | let(:context_key_translation) { double } |
57 | | - let(:args) { [:key, {scope: [:context]}] } |
58 | 57 |
|
59 | 58 | it { is_expected.to eql "{{__phrase_context.key__}}" } |
60 | 59 | end |
61 | 60 | end |
62 | 61 | end |
63 | 62 |
|
64 | 63 | context "phrase is disabled" do |
65 | | - let(:args) { [key_name] } |
| 64 | + subject { phraseapp_service.translate(key_name) } |
66 | 65 |
|
67 | 66 | before(:each) do |
68 | 67 | PhraseApp::InContextEditor.enabled = false |
|
71 | 70 | it { is_expected.to eql i18n_translation } |
72 | 71 |
|
73 | 72 | context "given arguments other than key_name" do |
74 | | - let(:args) { [key_name, locale: :ru] } |
| 73 | + subject { phraseapp_service.translate(key_name, locale: :ru) } |
75 | 74 | let(:ru_translation) { double } |
76 | 75 |
|
77 | 76 | before(:each) do |
|
87 | 86 | end |
88 | 87 |
|
89 | 88 | context "default array given" do |
90 | | - let(:args) { [:key, {default: [:first_fallback, :second_fallback]}] } |
| 89 | + subject { phraseapp_service.translate(:key, default: [:first_fallback, :second_fallback]) } |
91 | 90 |
|
92 | 91 | it { is_expected.to eql "Translation missing. Options considered were:\n- en.key\n- en.first_fallback\n- en.second_fallback" } |
93 | 92 | end |
94 | 93 |
|
95 | 94 | context "default string given" do |
96 | | - let(:args) { [:key, {default: "first fallback"}] } |
| 95 | + subject { phraseapp_service.translate(:key, default: "first fallback") } |
97 | 96 |
|
98 | 97 | it { is_expected.to eql "first fallback" } |
99 | 98 | end |
100 | 99 |
|
101 | | - context "scope array given" do |
102 | | - let(:context_key_translation) { double } |
103 | | - let(:args) { [:key, {scope: [:context]}] } |
| 100 | + context "default string given without key" do |
| 101 | + subject { phraseapp_service.translate(default: "first fallback") } |
104 | 102 |
|
105 | | - it { is_expected.to eql "Translation missing: en.context.key" } |
| 103 | + it { is_expected.to eql "first fallback" } |
106 | 104 | end |
107 | 105 |
|
108 | | - context "scope array given in rails 3 style" do |
| 106 | + context "scope array given" do |
| 107 | + subject { phraseapp_service.translate(:key, scope: [:context]) } |
109 | 108 | let(:context_key_translation) { double } |
110 | | - let(:args) { [:key, scope: [:context]] } |
111 | 109 |
|
112 | 110 | it { is_expected.to eql "Translation missing: en.context.key" } |
113 | 111 | end |
|
0 commit comments