|
39 | 39 | # Create a locale
|
40 | 40 | # Create a new locale.
|
41 | 41 | # @param project_id Project ID
|
42 |
| - # @param locale_create_parameters |
| 42 | + # @param locale_create_parameters |
43 | 43 | # @param [Hash] opts the optional parameters
|
44 | 44 | # @option opts [String] :x_phrase_app_otp Two-Factor-Authentication token (optional)
|
45 | 45 | # @return [LocaleDetails]
|
|
91 | 91 | # @option opts [String] :source_locale_id Provides the source language of a corresponding job as the source language of the generated locale file. This parameter will be ignored unless used in combination with a <code>tag</code> parameter indicating a specific job.
|
92 | 92 | # @return [File]
|
93 | 93 | describe 'locale_download test' do
|
| 94 | + let(:project_id) { 'project_id_example' } |
| 95 | + let(:id) { 'id_example' } |
| 96 | + let(:opts) { { |
| 97 | + branch: 'branch_example', |
| 98 | + format_options: {foo: 'bar'}, |
| 99 | + } } |
| 100 | + |
| 101 | + before do |
| 102 | + stub_request(:any, /.*phrase.com/) |
| 103 | + .to_return(status: 200, body: "foo", headers: { |
| 104 | + 'Content-Type' => 'application/octet-stream', |
| 105 | + 'Content-Disposition' => 'attachment; filename="test.txt"', |
| 106 | + }) |
| 107 | + end |
| 108 | + |
94 | 109 | it 'should work' do
|
95 |
| - # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers |
| 110 | + locale = @api_instance.locale_download(project_id, id, opts) |
| 111 | + expect(a_request(:get, "https://api.phrase.com/v2/projects/project_id_example/locales/id_example/download").with(query: {branch: "branch_example", format_options: {foo: "bar"}})). |
| 112 | + to have_been_made |
| 113 | + |
| 114 | + expect(locale).to be_instance_of(Phrase::Response) |
| 115 | + expect(File.read(locale.data)).to eq("foo") |
96 | 116 | end
|
97 | 117 | end
|
98 | 118 |
|
|
116 | 136 | # Update an existing locale.
|
117 | 137 | # @param project_id Project ID
|
118 | 138 | # @param id Locale ID or locale name
|
119 |
| - # @param locale_update_parameters |
| 139 | + # @param locale_update_parameters |
120 | 140 | # @param [Hash] opts the optional parameters
|
121 | 141 | # @option opts [String] :x_phrase_app_otp Two-Factor-Authentication token (optional)
|
122 | 142 | # @return [LocaleDetails]
|
|
138 | 158 | # @option opts [String] :branch specify the branch to use
|
139 | 159 | # @return [Array<Locale>]
|
140 | 160 | describe 'locales_list test' do
|
| 161 | + let(:project_id) { 'project_id_example' } |
| 162 | + let(:opts) { { |
| 163 | + branch: 'branch_example', |
| 164 | + } } |
| 165 | + let(:response_body) { |
| 166 | + <<-EOF |
| 167 | + [ |
| 168 | + { |
| 169 | + "id": "ae0ce77b64dbf7e8315b5da8ecbb42c0", |
| 170 | + "name": "de-DE", |
| 171 | + "code": "de-DE", |
| 172 | + "default": false, |
| 173 | + "main": false, |
| 174 | + "rtl": false, |
| 175 | + "plural_forms": [ |
| 176 | + "zero", |
| 177 | + "one", |
| 178 | + "other" |
| 179 | + ], |
| 180 | + "created_at": "2022-10-27T11:03:39Z", |
| 181 | + "updated_at": "2023-10-05T09:49:28Z", |
| 182 | + "source_locale": null, |
| 183 | + "fallback_locale": null |
| 184 | + }, |
| 185 | + { |
| 186 | + "id": "95060c3b178252e0c5d1936493e93108", |
| 187 | + "name": "en-US", |
| 188 | + "code": "en-US", |
| 189 | + "default": true, |
| 190 | + "main": false, |
| 191 | + "rtl": false, |
| 192 | + "plural_forms": [ |
| 193 | + "zero", |
| 194 | + "one", |
| 195 | + "other" |
| 196 | + ], |
| 197 | + "created_at": "2022-10-27T11:03:39Z", |
| 198 | + "updated_at": "2023-10-05T09:50:20Z", |
| 199 | + "source_locale": null, |
| 200 | + "fallback_locale": null |
| 201 | + }, |
| 202 | + { |
| 203 | + "id": "97b4b258d9000f256a97276561294b5b", |
| 204 | + "name": "sh", |
| 205 | + "code": "sr-Latn-RS", |
| 206 | + "default": false, |
| 207 | + "main": false, |
| 208 | + "rtl": false, |
| 209 | + "plural_forms": [ |
| 210 | + "zero", |
| 211 | + "one", |
| 212 | + "few", |
| 213 | + "other" |
| 214 | + ], |
| 215 | + "created_at": "2022-10-27T11:03:39Z", |
| 216 | + "updated_at": "2023-05-10T08:22:18Z", |
| 217 | + "source_locale": null, |
| 218 | + "fallback_locale": null |
| 219 | + } |
| 220 | + ] |
| 221 | + EOF |
| 222 | + } |
| 223 | + |
| 224 | + before do |
| 225 | + stub_request(:any, /.*phrase.com/) |
| 226 | + .to_return(status: 200, body: response_body, headers: { |
| 227 | + 'Content-Type' => 'application/json' |
| 228 | + }) |
| 229 | + end |
| 230 | + |
141 | 231 | it 'should work' do
|
142 |
| - # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers |
| 232 | + locales = @api_instance.locales_list(project_id, opts) |
| 233 | + expect(a_request(:get, "https://api.phrase.com/v2/projects/project_id_example/locales").with(query: {branch: "branch_example"})). |
| 234 | + to have_been_made |
| 235 | + |
| 236 | + expect(locales).to be_instance_of(Phrase::Response) |
| 237 | + expect(locales.data).to be_instance_of(Array) |
| 238 | + expect(locales.data.length).to eq(3) |
| 239 | + expect(locales.data[0]).to be_instance_of(Phrase::Locale) |
| 240 | + expect(locales.data[0].id).to eq("ae0ce77b64dbf7e8315b5da8ecbb42c0") |
| 241 | + expect(locales.data[0].name).to eq("de-DE") |
| 242 | + expect(locales.data[0].code).to eq("de-DE") |
| 243 | + expect(locales.data[0].default).to eq(false) |
| 244 | + expect(locales.data[0].plural_forms).to eq(["zero", "one", "other"]) |
| 245 | + expect(locales.data[0].created_at).to eq(DateTime.parse("2022-10-27T11:03:39Z")) |
| 246 | + expect(locales.data[0].updated_at).to eq(DateTime.parse("2023-10-05T09:49:28Z")) |
143 | 247 | end
|
144 | 248 | end
|
145 | 249 |
|
|
0 commit comments