|
1 | 1 | # frozen_string_literal: true |
2 | 2 |
|
3 | 3 | RSpec.describe SnakyHash::Snake do |
4 | | - class TheSnakedHash < Hashie::Mash |
5 | | - include SnakyHash::Snake.new(key_type: :string) |
| 4 | + subject(:instance) do |
| 5 | + the_snaked_hash.new(base_hash) |
6 | 6 | end |
7 | 7 |
|
8 | | - subject(:instance) do |
9 | | - TheSnakedHash.new(base_hash) |
| 8 | + let(:the_snaked_hash) do |
| 9 | + Class.new(Hashie::Mash) do |
| 10 | + include described_class.new(key_type: :string) |
| 11 | + end |
10 | 12 | end |
11 | 13 |
|
12 | | - include_context "base hash" |
| 14 | + include_context "with a base hash" |
13 | 15 |
|
14 | 16 | it_behaves_like "a snaky hash instance" |
15 | 17 |
|
16 | 18 | it "returns a SnakyHash::Snake from a snake + snake merge" do |
17 | | - a = TheSnakedHash.new("asd" => "asd") |
18 | | - b = TheSnakedHash.new(zxc: "zxc") |
19 | | - expect(a.merge(b)).to be_a(TheSnakedHash) |
| 19 | + a = the_snaked_hash.new("asd" => "asd") |
| 20 | + b = the_snaked_hash.new(zxc: "zxc") |
| 21 | + expect(a.merge(b)).to be_a(the_snaked_hash) |
20 | 22 | end |
21 | 23 |
|
22 | 24 | it "returns a SnakyHash::Snake from a snake + hash merge" do |
23 | | - a = TheSnakedHash.new("asd" => "asd") |
| 25 | + a = the_snaked_hash.new("asd" => "asd") |
24 | 26 | b = {zxc: "zxc"} |
25 | | - expect(a.merge(b)).to be_a(TheSnakedHash) |
| 27 | + expect(a.merge(b)).to be_a(the_snaked_hash) |
26 | 28 | end |
27 | 29 |
|
28 | 30 | it "returns a Hash from a hash + snake merge" do |
29 | | - a = TheSnakedHash.new("asd" => "asd") |
| 31 | + a = the_snaked_hash.new("asd" => "asd") |
30 | 32 | b = {zxc: "zxc"} |
31 | 33 | res = b.merge(a) |
32 | | - expect(res).not_to be_a(TheSnakedHash) |
| 34 | + expect(res).not_to be_a(the_snaked_hash) |
33 | 35 | expect(res).to be_a(Hash) |
34 | 36 | end |
35 | 37 |
|
|
0 commit comments