Skip to content

Commit 08b5420

Browse files
authored
Lint: Fix RSpec context wording (#1188)
1 parent 0d1edfc commit 08b5420

File tree

7 files changed

+130
-137
lines changed

7 files changed

+130
-137
lines changed

.rubocop_todo.yml

Lines changed: 0 additions & 15 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

spec/currency_spec.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ def to_s
125125
end
126126
end
127127

128-
context "after reset!" do
128+
context "when after reset!" do
129129
it "clears the iso_numeric cache" do
130130
expect(described_class.find_by_iso_numeric(840)).to eq described_class.new(:usd)
131131

spec/money/allocation_spec.rb

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
# frozen_string_literal: true
22

33
RSpec.describe Money::Allocation do
4-
context 'given number as argument' do
4+
context 'when given number as argument' do
55
it 'raises an error when invalid argument is given' do
66
expect { described_class.generate(100, 0) }.to raise_error(ArgumentError)
77
expect { described_class.generate(100, -1) }.to raise_error(ArgumentError)
88
end
99

10-
context 'whole amounts' do
10+
context 'with whole amounts' do
1111
it 'returns the amount when 1 is given' do
1212
expect(described_class.generate(100, 1)).to eq([100])
1313
end
@@ -26,7 +26,7 @@
2626
end
2727
end
2828

29-
context 'fractional amounts' do
29+
context 'with fractional amounts' do
3030
it 'returns the amount when 1 is given' do
3131
expect(described_class.generate(BigDecimal(100), 1, false)).to eq([BigDecimal(100)])
3232
end
@@ -61,12 +61,12 @@
6161
end
6262
end
6363

64-
describe 'given array as argument' do
64+
context 'when given array as argument' do
6565
it 'raises an error when invalid argument is given' do
6666
expect { described_class.generate(100, []) }.to raise_error(ArgumentError)
6767
end
6868

69-
context 'whole amounts' do
69+
context 'with whole amounts' do
7070
it 'returns the amount when array contains only one element' do
7171
expect(described_class.generate(100, [1])).to eq([100])
7272
expect(described_class.generate(100, [5])).to eq([100])
@@ -96,7 +96,7 @@
9696
end
9797
end
9898

99-
context 'fractional amounts' do
99+
context 'with fractional amounts' do
100100
it 'returns the amount when array contains only one element' do
101101
expect(described_class.generate(BigDecimal(100), [1], false)).to eq([100])
102102
expect(described_class.generate(BigDecimal(100), [5], false)).to eq([100])
@@ -137,7 +137,7 @@
137137
end
138138
end
139139

140-
describe 'an allocation seen in the wild' do
140+
context 'with an allocation seen in the wild' do
141141
it 'allocates the full amount' do
142142
amount = 700273
143143
allocations = [1.1818583143661, 1.1818583143661, 1.1818583143661, 1.1818583143661, 1.1818583143661, 1.1818583143661, 1.1818583143661, 1.170126087450276, 1.0, 1.0, 1.0, 1.0]

spec/money/arithmetic_spec.rb

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -360,7 +360,7 @@
360360
expect(special_money_class.new(10_00, "USD") / 2).to be_a special_money_class
361361
end
362362

363-
context 'rounding preference' do
363+
describe 'rounding preference' do
364364
before do
365365
allow(Money).to receive(:rounding_mode).and_return(rounding_mode)
366366
end
@@ -369,31 +369,31 @@
369369
allow(Money).to receive(:rounding_mode).and_call_original
370370
end
371371

372-
context 'ceiling rounding' do
372+
context 'when ceiling rounding' do
373373
let(:rounding_mode) { BigDecimal::ROUND_CEILING }
374374

375375
it "obeys the rounding preference" do
376376
expect(Money.new(10) / 3).to eq Money.new(4)
377377
end
378378
end
379379

380-
context 'floor rounding' do
380+
context 'when floor rounding' do
381381
let(:rounding_mode) { BigDecimal::ROUND_FLOOR }
382382

383383
it "obeys the rounding preference" do
384384
expect(Money.new(10) / 6).to eq Money.new(1)
385385
end
386386
end
387387

388-
context 'half up rounding' do
388+
context 'when half up rounding' do
389389
let(:rounding_mode) { BigDecimal::ROUND_HALF_UP }
390390

391391
it "obeys the rounding preference" do
392392
expect(Money.new(10) / 4).to eq Money.new(3)
393393
end
394394
end
395395

396-
context 'half down rounding' do
396+
context 'when half down rounding' do
397397
let(:rounding_mode) { BigDecimal::ROUND_HALF_DOWN }
398398

399399
it "obeys the rounding preference" do
@@ -851,14 +851,14 @@
851851
Money.default_bank = @old_default_bank
852852
end
853853

854-
context 'and other is money with different currency' do
854+
context 'when other is money with different currency' do
855855
let(:other) { Money.gbp(1) }
856856

857857
it 'raises Money::Bank::DifferentCurrencyError' do
858858
expect { instance.send(op, other) }.to raise_error Money::Bank::DifferentCurrencyError
859859
end
860860

861-
context 'even for zero' do
861+
context 'when zero' do
862862
let(:instance) { Money.usd(0) }
863863
let(:other) { Money.gbp(0) }
864864

spec/money/formatting_spec.rb

Lines changed: 81 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# frozen_string_literal: true
22

3-
RSpec.describe Money, "formatting" do
3+
# rubocop:disable RSpec/DescribeClass
4+
RSpec.describe "Money formatting" do
45
context "without i18n" do
56
subject(:money) { Money.empty("USD") }
67

@@ -108,12 +109,12 @@
108109
expect(Money.zero.format(:display_free)).to eq('free')
109110
end
110111

111-
context "Locale :ja" do
112+
context "when in Japanese" do
112113
before { @_locale = I18n.locale; I18n.locale = :ja }
113114

114115
after { I18n.locale = @_locale }
115116

116-
it "formats Japanese currency in Japanese properly" do
117+
it "formats Japanese currency properly" do
117118
money = Money.new(1000, "JPY")
118119
expect(money.format).to eq "¥1,000"
119120
expect(money.format(format: "%n%u", symbol: "円")).to eq "1,000円"
@@ -218,10 +219,8 @@
218219
Money.default_formatting_rules = nil
219220
end
220221

221-
context 'acknowledges provided rule' do
222-
it 'acknowledges provided rule' do
223-
expect(Money.new(100, 'USD').format(with_currency: true)).to eq '$1.00 USD'
224-
end
222+
it 'acknowledges provided rule' do
223+
expect(Money.new(100, 'USD').format(with_currency: true)).to eq '$1.00 USD'
225224
end
226225
end
227226

@@ -460,7 +459,7 @@
460459
expect(Money.new(100000, "ZWD").format).to eq "$1,000.00"
461460
end
462461

463-
context "currency locale_backend i18n", :locale_backend_currency do
462+
context "with a currency locale_backend i18n", :locale_backend_currency do
464463
it "respects explicit overriding of thousands_separator/delimiter when decimal_mark/separator collide and there's no decimal component for currencies that have no subunit" do
465464
expect(Money.new(300_000, 'ISK').format(thousands_separator: ",", decimal_mark: '.')).to eq "300,000 kr."
466465
end
@@ -641,7 +640,7 @@
641640
end
642641
end
643642

644-
context "custom currencies with 4 decimal places" do
643+
context "with custom currencies with 4 decimal places" do
645644
let(:bar) do
646645
{
647646
priority: 1,
@@ -716,66 +715,78 @@
716715
end
717716
end
718717

719-
context "currencies with ambiguous signs" do
720-
it "returns ambiguous signs when disambiguate is not set" do
721-
expect(Money.new(1999_98, "USD").format).to eq("$1,999.98")
722-
expect(Money.new(1999_98, "CAD").format).to eq("$1,999.98")
723-
expect(Money.new(1999_98, "DKK").format).to eq("1.999,98 kr.")
724-
expect(Money.new(1999_98, "NOK").format).to eq("1.999,98 kr")
725-
expect(Money.new(1999_98, "SEK").format).to eq("1 999,98 kr")
726-
expect(Money.new(1999_98, "BCH").format).to eq("0.00199998 ₿")
727-
expect(Money.new(1999_98, "USDC").format).to eq("0.199998 USDC")
728-
end
729-
730-
it "returns ambiguous signs when disambiguate is false" do
731-
expect(Money.new(1999_98, "USD").format(disambiguate: false)).to eq("$1,999.98")
732-
expect(Money.new(1999_98, "CAD").format(disambiguate: false)).to eq("$1,999.98")
733-
expect(Money.new(1999_98, "DKK").format(disambiguate: false)).to eq("1.999,98 kr.")
734-
expect(Money.new(1999_98, "NOK").format(disambiguate: false)).to eq("1.999,98 kr")
735-
expect(Money.new(1999_98, "SEK").format(disambiguate: false)).to eq("1 999,98 kr")
736-
expect(Money.new(1999_98, "BCH").format(disambiguate: false)).to eq("0.00199998 ₿")
737-
expect(Money.new(1999_98, "USDC").format(disambiguate: false)).to eq("0.199998 USDC")
738-
end
739-
740-
it "returns disambiguate signs when disambiguate: true" do
741-
expect(Money.new(1999_98, "USD").format(disambiguate: true)).to eq("US$1,999.98")
742-
expect(Money.new(1999_98, "CAD").format(disambiguate: true)).to eq("C$1,999.98")
743-
expect(Money.new(1999_98, "DKK").format(disambiguate: true)).to eq("1.999,98 DKK")
744-
expect(Money.new(1999_98, "NOK").format(disambiguate: true)).to eq("1.999,98 NOK")
745-
expect(Money.new(1999_98, "SEK").format(disambiguate: true)).to eq("1 999,98 SEK")
746-
expect(Money.new(1999_98, "BCH").format(disambiguate: true)).to eq("0.00199998 ₿CH")
747-
expect(Money.new(1999_98, "USDC").format(disambiguate: true)).to eq("0.199998 USDC")
748-
end
749-
750-
it "returns disambiguate signs when disambiguate: true and symbol: true" do
751-
expect(Money.new(1999_98, "USD").format(disambiguate: true, symbol: true)).to eq("US$1,999.98")
752-
expect(Money.new(1999_98, "CAD").format(disambiguate: true, symbol: true)).to eq("C$1,999.98")
753-
expect(Money.new(1999_98, "DKK").format(disambiguate: true, symbol: true)).to eq("1.999,98 DKK")
754-
expect(Money.new(1999_98, "NOK").format(disambiguate: true, symbol: true)).to eq("1.999,98 NOK")
755-
expect(Money.new(1999_98, "SEK").format(disambiguate: true, symbol: true)).to eq("1 999,98 SEK")
756-
expect(Money.new(1999_98, "BCH").format(disambiguate: true, symbol: true)).to eq("0.00199998 ₿CH")
757-
expect(Money.new(1999_98, "USDC").format(disambiguate: true, symbol: true)).to eq("0.199998 USDC")
758-
end
759-
760-
it "returns no signs when disambiguate: true and symbol: false" do
761-
expect(Money.new(1999_98, "USD").format(disambiguate: true, symbol: false)).to eq("1,999.98")
762-
expect(Money.new(1999_98, "CAD").format(disambiguate: true, symbol: false)).to eq("1,999.98")
763-
expect(Money.new(1999_98, "DKK").format(disambiguate: true, symbol: false)).to eq("1.999,98")
764-
expect(Money.new(1999_98, "NOK").format(disambiguate: true, symbol: false)).to eq("1.999,98")
765-
expect(Money.new(1999_98, "SEK").format(disambiguate: true, symbol: false)).to eq("1 999,98")
766-
expect(Money.new(1999_98, "BCH").format(disambiguate: true, symbol: false)).to eq("0.00199998")
767-
expect(Money.new(1999_98, "USDC").format(disambiguate: true, symbol: false)).to eq("0.199998")
768-
end
769-
770-
it "nevers return an ambiguous format with disambiguate: true" do
771-
formatted_results = {}
772-
773-
# When we format the same amount in all known currencies, disambiguate should return
774-
# all different values
775-
Money::Currency.all.each do |currency|
776-
format = Money.new(1999_98, currency).format(disambiguate: true)
777-
expect(formatted_results.keys).not_to include(format), "Format '#{format}' for #{currency} is ambiguous with currency #{formatted_results[format]}."
778-
formatted_results[format] = currency
718+
context "with currencies with ambiguous signs" do
719+
context "when disambiguate is not set" do
720+
it "returns ambiguous signs" do
721+
expect(Money.new(1999_98, "USD").format).to eq("$1,999.98")
722+
expect(Money.new(1999_98, "CAD").format).to eq("$1,999.98")
723+
expect(Money.new(1999_98, "DKK").format).to eq("1.999,98 kr.")
724+
expect(Money.new(1999_98, "NOK").format).to eq("1.999,98 kr")
725+
expect(Money.new(1999_98, "SEK").format).to eq("1 999,98 kr")
726+
expect(Money.new(1999_98, "BCH").format).to eq("0.00199998 ₿")
727+
expect(Money.new(1999_98, "USDC").format).to eq("0.199998 USDC")
728+
end
729+
end
730+
731+
context "when disambiguate is false" do
732+
it "returns ambiguous signs" do
733+
expect(Money.new(1999_98, "USD").format(disambiguate: false)).to eq("$1,999.98")
734+
expect(Money.new(1999_98, "CAD").format(disambiguate: false)).to eq("$1,999.98")
735+
expect(Money.new(1999_98, "DKK").format(disambiguate: false)).to eq("1.999,98 kr.")
736+
expect(Money.new(1999_98, "NOK").format(disambiguate: false)).to eq("1.999,98 kr")
737+
expect(Money.new(1999_98, "SEK").format(disambiguate: false)).to eq("1 999,98 kr")
738+
expect(Money.new(1999_98, "BCH").format(disambiguate: false)).to eq("0.00199998 ₿")
739+
expect(Money.new(1999_98, "USDC").format(disambiguate: false)).to eq("0.199998 USDC")
740+
end
741+
end
742+
743+
context "when disambiguate is true" do
744+
it "returns disambiguous signs" do
745+
expect(Money.new(1999_98, "USD").format(disambiguate: true)).to eq("US$1,999.98")
746+
expect(Money.new(1999_98, "CAD").format(disambiguate: true)).to eq("C$1,999.98")
747+
expect(Money.new(1999_98, "DKK").format(disambiguate: true)).to eq("1.999,98 DKK")
748+
expect(Money.new(1999_98, "NOK").format(disambiguate: true)).to eq("1.999,98 NOK")
749+
expect(Money.new(1999_98, "SEK").format(disambiguate: true)).to eq("1 999,98 SEK")
750+
expect(Money.new(1999_98, "BCH").format(disambiguate: true)).to eq("0.00199998 ₿CH")
751+
expect(Money.new(1999_98, "USDC").format(disambiguate: true)).to eq("0.199998 USDC")
752+
end
753+
754+
it "nevers returns an ambiguous format" do
755+
formatted_results = {}
756+
757+
# When we format the same amount in all known currencies, disambiguate
758+
# should return all different values
759+
Money::Currency.all.each do |currency|
760+
format = Money.new(1999_98, currency).format(disambiguate: true)
761+
expect(formatted_results.keys)
762+
.not_to include(format),
763+
"Format '#{format}' for #{currency} is ambiguous with currency #{formatted_results[format]}."
764+
formatted_results[format] = currency
765+
end
766+
end
767+
end
768+
769+
context "when disambiguate is true and symbol is true" do
770+
it "returns disambiguate signs" do
771+
expect(Money.new(1999_98, "USD").format(disambiguate: true, symbol: true)).to eq("US$1,999.98")
772+
expect(Money.new(1999_98, "CAD").format(disambiguate: true, symbol: true)).to eq("C$1,999.98")
773+
expect(Money.new(1999_98, "DKK").format(disambiguate: true, symbol: true)).to eq("1.999,98 DKK")
774+
expect(Money.new(1999_98, "NOK").format(disambiguate: true, symbol: true)).to eq("1.999,98 NOK")
775+
expect(Money.new(1999_98, "SEK").format(disambiguate: true, symbol: true)).to eq("1 999,98 SEK")
776+
expect(Money.new(1999_98, "BCH").format(disambiguate: true, symbol: true)).to eq("0.00199998 ₿CH")
777+
expect(Money.new(1999_98, "USDC").format(disambiguate: true, symbol: true)).to eq("0.199998 USDC")
778+
end
779+
end
780+
781+
context "when disambiguate is true and symbol is false" do
782+
it "returns no signs" do
783+
expect(Money.new(1999_98, "USD").format(disambiguate: true, symbol: false)).to eq("1,999.98")
784+
expect(Money.new(1999_98, "CAD").format(disambiguate: true, symbol: false)).to eq("1,999.98")
785+
expect(Money.new(1999_98, "DKK").format(disambiguate: true, symbol: false)).to eq("1.999,98")
786+
expect(Money.new(1999_98, "NOK").format(disambiguate: true, symbol: false)).to eq("1.999,98")
787+
expect(Money.new(1999_98, "SEK").format(disambiguate: true, symbol: false)).to eq("1 999,98")
788+
expect(Money.new(1999_98, "BCH").format(disambiguate: true, symbol: false)).to eq("0.00199998")
789+
expect(Money.new(1999_98, "USDC").format(disambiguate: true, symbol: false)).to eq("0.199998")
779790
end
780791
end
781792

@@ -802,3 +813,4 @@
802813
end
803814
end
804815
end
816+
# rubocop:enable RSpec/DescribeClass

0 commit comments

Comments
 (0)