backpack_tf 0.8.4 → 1.0.0.rc1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -3
- data/.rspec +2 -0
- data/.travis.yml +3 -0
- data/Gemfile +5 -3
- data/Gemfile.lock +49 -0
- data/README.md +144 -0
- data/Rakefile +7 -0
- data/backpack_tf.gemspec +2 -2
- data/lib/backpack_tf/assets/{attribute_controlled_attached_particles.json → particle_effects.json} +0 -0
- data/lib/backpack_tf/client.rb +72 -95
- data/lib/backpack_tf/currency/interface.rb +9 -0
- data/lib/backpack_tf/currency/response.rb +24 -0
- data/lib/backpack_tf/currency.rb +24 -47
- data/lib/backpack_tf/helpers.rb +29 -0
- data/lib/backpack_tf/interface.rb +29 -0
- data/lib/backpack_tf/market_price/interface.rb +9 -0
- data/lib/backpack_tf/market_price/response.rb +15 -0
- data/lib/backpack_tf/market_price.rb +25 -0
- data/lib/backpack_tf/price/interface.rb +19 -0
- data/lib/backpack_tf/price/item.rb +85 -0
- data/lib/backpack_tf/price/item_price.rb +113 -0
- data/lib/backpack_tf/price/particle_effect.rb +27 -0
- data/lib/backpack_tf/price/response.rb +38 -0
- data/lib/backpack_tf/price.rb +9 -81
- data/lib/backpack_tf/price_history/interface.rb +22 -0
- data/lib/backpack_tf/price_history/response.rb +15 -0
- data/lib/backpack_tf/price_history.rb +25 -0
- data/lib/backpack_tf/response.rb +9 -56
- data/lib/backpack_tf/special_item/interface.rb +9 -0
- data/lib/backpack_tf/special_item/response.rb +16 -0
- data/lib/backpack_tf/special_item.rb +11 -21
- data/lib/backpack_tf/user/interface.rb +18 -0
- data/lib/backpack_tf/user/response.rb +16 -0
- data/lib/backpack_tf/user.rb +10 -19
- data/lib/backpack_tf/user_listing/interface.rb +18 -0
- data/lib/backpack_tf/user_listing/response.rb +15 -0
- data/lib/backpack_tf/user_listing.rb +31 -43
- data/lib/backpack_tf/version.rb +1 -1
- data/lib/backpack_tf.rb +8 -8
- data/spec/backpack_tf/client_spec.rb +151 -101
- data/spec/backpack_tf/currency/interface_spec.rb +8 -0
- data/spec/backpack_tf/currency/response_spec.rb +41 -0
- data/spec/backpack_tf/currency_spec.rb +34 -118
- data/spec/backpack_tf/helpers_spec.rb +85 -0
- data/spec/backpack_tf/interface_spec.rb +56 -0
- data/spec/backpack_tf/market_price/interface_spec.rb +8 -0
- data/spec/backpack_tf/market_price/response_spec.rb +22 -0
- data/spec/backpack_tf/market_price_spec.rb +22 -0
- data/spec/backpack_tf/price/interface_spec.rb +27 -0
- data/spec/backpack_tf/price/item_price_spec.rb +101 -0
- data/spec/backpack_tf/price/item_spec.rb +291 -0
- data/spec/backpack_tf/price/particle_effect_spec.rb +23 -0
- data/spec/backpack_tf/price/response_spec.rb +87 -0
- data/spec/backpack_tf/price_history/interface_spec.rb +38 -0
- data/spec/backpack_tf/price_history/response_spec.rb +22 -0
- data/spec/backpack_tf/price_history_spec.rb +24 -0
- data/spec/backpack_tf/response_spec.rb +22 -108
- data/spec/backpack_tf/special_item/interface_spec.rb +8 -0
- data/spec/backpack_tf/special_item/response_spec.rb +26 -0
- data/spec/backpack_tf/special_item_spec.rb +23 -100
- data/spec/backpack_tf/user/interface_spec.rb +20 -0
- data/spec/backpack_tf/user/response_spec.rb +27 -0
- data/spec/backpack_tf/user_listing/interface_spec.rb +20 -0
- data/spec/backpack_tf/user_listing/response_spec.rb +21 -0
- data/spec/backpack_tf/user_listing_spec.rb +53 -81
- data/spec/backpack_tf/user_spec.rb +16 -83
- data/spec/fixtures/item_price_typical.json +6 -0
- data/spec/fixtures/item_price_unusual.json +7 -0
- data/spec/fixtures/item_typical.json +1 -1
- data/spec/fixtures/item_unusual.json +311 -1
- data/spec/fixtures/item_with_dual_craftability_tradability.json +59 -0
- data/spec/fixtures/market_prices.json +1 -0
- data/spec/fixtures/price_history.json +1 -0
- data/spec/fixtures/prices.json +80 -1
- data/spec/fixtures/user_listing.json +1 -1
- data/spec/fixtures/user_listing_individual.json +51 -0
- data/spec/spec_helper.rb +12 -52
- metadata +61 -16
- data/TODO.md +0 -15
- data/lib/backpack_tf/item.rb +0 -84
- data/lib/backpack_tf/item_price.rb +0 -172
- data/readme.md +0 -96
- data/spec/backpack_tf/inherited_class_methods_spec.rb +0 -100
- data/spec/backpack_tf/item_price_spec.rb +0 -119
- data/spec/backpack_tf/item_spec.rb +0 -126
- data/spec/backpack_tf/price_spec.rb +0 -184
- data/spec/fixtures/item_without_defindex.json +0 -1
@@ -1,126 +1,42 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
fixture = file_fixture('currencies.json')
|
9
|
-
fixture = JSON.parse(fixture)['response']
|
10
|
-
Response.hash_keys_to_sym(fixture)
|
11
|
-
}
|
12
|
-
|
13
|
-
let(:more_json) {
|
14
|
-
fixture = file_fixture('currencies_updated.json')
|
15
|
-
fixture = JSON.parse(fixture)['response']
|
16
|
-
Response.hash_keys_to_sym(fixture)
|
17
|
-
}
|
18
|
-
|
19
|
-
it 'class has these default attributes' do
|
20
|
-
expect(described_class.interface).to eq :IGetCurrencies
|
21
|
-
end
|
22
|
-
|
23
|
-
describe '::response' do
|
24
|
-
before :all do
|
25
|
-
expect(described_class.response).to be_nil
|
26
|
-
end
|
27
|
-
|
28
|
-
before :each do
|
29
|
-
stub_http_response_with('currencies.json')
|
30
|
-
fetched_currencies = bp.fetch(:currencies)
|
31
|
-
bp.update(described_class, fetched_currencies)
|
32
|
-
end
|
33
|
-
|
34
|
-
after :all do
|
35
|
-
Response.responses(:reset => :confirm)
|
36
|
-
expect(Response.responses).to be_empty
|
37
|
-
expect(described_class.response).to be_nil
|
38
|
-
expect(described_class.currencies).to be_nil
|
39
|
-
end
|
40
|
-
|
41
|
-
it 'the keys of the response attribute should have these values' do
|
42
|
-
response = described_class.response
|
43
|
-
expect(response[:success]).to eq 1
|
44
|
-
expect(response[:message]).to eq nil
|
45
|
-
expect(response[:current_time]).to eq 1430784460
|
46
|
-
expect(response[:name]).to eq 'Team Fortress 2'
|
47
|
-
expect(response[:url]).to eq 'http://backpack.tf'
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
|
-
describe '::currencies' do
|
52
|
-
before :all do
|
53
|
-
expect(described_class.response).to be_nil
|
54
|
-
expect(described_class.currencies).to be_nil
|
55
|
-
end
|
56
|
-
|
57
|
-
before :each do
|
58
|
-
Response.responses(:reset => :confirm)
|
59
|
-
expect(Response.responses).to be_empty
|
60
|
-
|
61
|
-
stub_http_response_with('currencies.json')
|
62
|
-
fetched_currencies = bp.fetch(:currencies)
|
63
|
-
bp.update(described_class, fetched_currencies)
|
64
|
-
end
|
65
|
-
|
66
|
-
after :all do
|
67
|
-
Response.responses(:reset => :confirm)
|
68
|
-
expect(Response.responses).to be_empty
|
69
|
-
described_class.class_eval { @currencies = nil }
|
70
|
-
end
|
71
|
-
|
72
|
-
it 'returns the fixture and sets to @@currencies variable' do
|
73
|
-
expect(described_class.currencies).not_to be_nil
|
74
|
-
end
|
75
|
-
|
76
|
-
it '@@currencies attribute should be a Hash object' do
|
77
|
-
expect(described_class.currencies).to be_instance_of Hash
|
78
|
-
end
|
79
|
-
|
80
|
-
it '@@currencies should have these keys' do
|
81
|
-
expected_keys = [:metal, :keys, :earbuds, :hat]
|
82
|
-
expect(described_class.currencies.keys).to match_array expected_keys
|
83
|
-
end
|
84
|
-
end
|
85
|
-
|
86
|
-
describe '#initialize' do
|
87
|
-
|
88
|
-
before :all do
|
89
|
-
expect(described_class.response).to be_nil
|
90
|
-
expect(described_class.currencies).to be_nil
|
91
|
-
end
|
92
|
-
|
93
|
-
before :each do
|
94
|
-
bp.update(described_class, json_obj)
|
95
|
-
expect(described_class.currencies).not_to be_nil
|
96
|
-
end
|
97
|
-
|
98
|
-
after :all do
|
99
|
-
Response.responses(:reset => :confirm)
|
100
|
-
expect(Response.responses).to be_empty
|
101
|
-
described_class.class_eval { @currencies = nil }
|
102
|
-
end
|
3
|
+
describe BackpackTF::Currency do
|
4
|
+
let(:currencies) do
|
5
|
+
fixture = file_fixture('currencies_updated.json')
|
6
|
+
JSON.parse(fixture)['response']
|
7
|
+
end
|
103
8
|
|
104
|
-
|
105
|
-
|
9
|
+
describe '#initialize' do
|
10
|
+
it 'instance should have these values' do
|
11
|
+
processed_currencies = {
|
12
|
+
quality: 6,
|
13
|
+
priceindex: 0,
|
14
|
+
single: 'ref',
|
15
|
+
plural: 'ref',
|
16
|
+
round: '2',
|
17
|
+
craftable: 'Craftable',
|
18
|
+
tradable: 'Tradable',
|
19
|
+
defindex: 5002,
|
20
|
+
blanket: 0
|
106
21
|
}
|
107
22
|
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
23
|
+
allow_any_instance_of(described_class)
|
24
|
+
.to receive(:hash_keys_to_sym)
|
25
|
+
.and_return(processed_currencies)
|
26
|
+
|
27
|
+
subject = described_class.new(:metal, currencies['metal'])
|
28
|
+
|
29
|
+
expect(subject).to have_attributes(
|
30
|
+
quality: 6,
|
31
|
+
priceindex: 0,
|
32
|
+
single: 'ref',
|
33
|
+
plural: 'ref',
|
34
|
+
round: '2',
|
35
|
+
craftable: :Craftable,
|
36
|
+
tradable: :Tradable,
|
37
|
+
defindex: 5002,
|
38
|
+
blanket: 0
|
39
|
+
)
|
123
40
|
end
|
124
|
-
|
125
41
|
end
|
126
42
|
end
|
@@ -0,0 +1,85 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe BackpackTF::Helpers do
|
4
|
+
module BackpackTF
|
5
|
+
class DummyClass # :nodoc:
|
6
|
+
include BackpackTF::Helpers
|
7
|
+
|
8
|
+
class Response < BackpackTF::Response # :nodoc:
|
9
|
+
self.response = { foo: 'bar' }
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
let(:dummy) { BackpackTF::DummyClass.new }
|
15
|
+
|
16
|
+
# TODO: these tests can be written more succinctly by expecting messages to
|
17
|
+
# be called or to have been called on the DummyClass::Response class.
|
18
|
+
describe '::response' do
|
19
|
+
context 'demonstrating how it normally works' do
|
20
|
+
context 'reading' do
|
21
|
+
it 'the inner Response class has this value for .response' do
|
22
|
+
expected = { foo: 'bar' }
|
23
|
+
expect(BackpackTF::DummyClass::Response.response).to eq(expected)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
context 'writing' do
|
28
|
+
before(:each) do
|
29
|
+
BackpackTF::DummyClass::Response.response = { bar: 'foo' }
|
30
|
+
end
|
31
|
+
after(:each) do
|
32
|
+
BackpackTF::DummyClass::Response.class_eval do
|
33
|
+
self.response = { foo: 'bar' }
|
34
|
+
end
|
35
|
+
end
|
36
|
+
it 'can write .response of its own Response class (compare by value)' do
|
37
|
+
expected = { bar: 'foo' }
|
38
|
+
expect(BackpackTF::DummyClass::Response.response).to eq(expected)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
context 'demonstrating how it works with the shortcut' do
|
44
|
+
context 'reading' do
|
45
|
+
it 'can read .response of its own Response class' do
|
46
|
+
expected = BackpackTF::DummyClass::Response.response
|
47
|
+
expect(BackpackTF::DummyClass.response).to eq(expected)
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
context 'writing' do
|
52
|
+
before(:each) do
|
53
|
+
BackpackTF::DummyClass.response = { bar: 'foo' }
|
54
|
+
end
|
55
|
+
after(:each) do
|
56
|
+
BackpackTF::DummyClass.class_eval { self.response = { foo: 'bar' } }
|
57
|
+
end
|
58
|
+
|
59
|
+
it 'can write to its own Response class (compare by value)' do
|
60
|
+
expected = { bar: 'foo' }
|
61
|
+
expect(BackpackTF::DummyClass.response).to eq(expected)
|
62
|
+
end
|
63
|
+
it 'can write to its own Response class (compare by reference)' do
|
64
|
+
expected = BackpackTF::DummyClass::Response.response
|
65
|
+
expect(BackpackTF::DummyClass.response).to eq(expected)
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
describe '#hash_keys_to_sym' do
|
72
|
+
it 'changes each key from a String to a Symbol' do
|
73
|
+
metal = {
|
74
|
+
'quality' => 6,
|
75
|
+
'single' => 'ref'
|
76
|
+
}
|
77
|
+
hashed_metal = {
|
78
|
+
quality: 6,
|
79
|
+
single: 'ref'
|
80
|
+
}
|
81
|
+
actual = dummy.send(:hash_keys_to_sym, metal)
|
82
|
+
expect(actual).to eq hashed_metal
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
@@ -0,0 +1,56 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe BackpackTF::Interface do
|
4
|
+
describe '::defaults' do
|
5
|
+
after(:each) do
|
6
|
+
described_class.class_eval do
|
7
|
+
@format = 'json'
|
8
|
+
@callback = nil
|
9
|
+
@appid = '440'
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
it 'has these attributes & values by default' do
|
14
|
+
expect(described_class).to have_attributes(
|
15
|
+
format: 'json',
|
16
|
+
callback: nil,
|
17
|
+
appid: '440'
|
18
|
+
)
|
19
|
+
end
|
20
|
+
it 'can modify its values' do
|
21
|
+
options = {
|
22
|
+
format: 'foo',
|
23
|
+
callback: 'bar',
|
24
|
+
appid: '2'
|
25
|
+
}
|
26
|
+
described_class.defaults(options)
|
27
|
+
expect(described_class).to have_attributes(
|
28
|
+
format: 'foo',
|
29
|
+
callback: 'bar',
|
30
|
+
appid: '2'
|
31
|
+
)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
describe '::url_name_and_version' do
|
36
|
+
before(:each) do
|
37
|
+
allow(described_class).to receive(:name).and_return('interface_name')
|
38
|
+
allow(described_class).to receive(:version).and_return(1)
|
39
|
+
end
|
40
|
+
after(:each) do
|
41
|
+
allow(described_class).to receive(:name).and_return(nil)
|
42
|
+
allow(described_class).to receive(:version).and_return(nil)
|
43
|
+
end
|
44
|
+
|
45
|
+
it 'calls .name and .version' do
|
46
|
+
expect(described_class).to receive(:name)
|
47
|
+
expect(described_class).to receive(:version)
|
48
|
+
described_class.url_name_and_version
|
49
|
+
end
|
50
|
+
it 'returns part of a url' do
|
51
|
+
actual = described_class.url_name_and_version
|
52
|
+
expected = '/interface_name/v1/?'
|
53
|
+
expect(actual).to eq expected
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe BackpackTF::MarketPrice::Response do
|
4
|
+
let(:json_response) do
|
5
|
+
fixture = file_fixture('market_prices.json')
|
6
|
+
JSON.parse(fixture)['response']
|
7
|
+
end
|
8
|
+
|
9
|
+
describe '::items' do
|
10
|
+
before(:each) do
|
11
|
+
described_class.response = json_response
|
12
|
+
end
|
13
|
+
after(:each) do
|
14
|
+
described_class.response = nil
|
15
|
+
end
|
16
|
+
|
17
|
+
it 'each key points to a BackpackTF::MarketPrice object' do
|
18
|
+
items = described_class.items
|
19
|
+
expect(items.values).to all be_a BackpackTF::MarketPrice
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe BackpackTF::MarketPrice do
|
4
|
+
let(:response_attr) do
|
5
|
+
{
|
6
|
+
'last_updated' => 1_453_654_816,
|
7
|
+
'quantity' => 52,
|
8
|
+
'value' => 89
|
9
|
+
}
|
10
|
+
end
|
11
|
+
|
12
|
+
describe '#initialize' do
|
13
|
+
it 'has these attributes' do
|
14
|
+
actual = described_class.new('A Color Similar to Slate', response_attr)
|
15
|
+
expect(actual).to have_attributes(
|
16
|
+
last_updated: 1_453_654_816,
|
17
|
+
quantity: 52,
|
18
|
+
value: 89
|
19
|
+
)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe BackpackTF::Price::Interface do
|
4
|
+
it 'has these default attributes' do
|
5
|
+
expect(described_class.name).to eq :IGetPrices
|
6
|
+
expect(described_class.version).to eq 4
|
7
|
+
expect(described_class.raw).to eq nil
|
8
|
+
expect(described_class.since).to eq nil
|
9
|
+
end
|
10
|
+
describe '::defaults' do
|
11
|
+
after(:each) do
|
12
|
+
described_class.class_eval do
|
13
|
+
@raw = nil
|
14
|
+
@since = nil
|
15
|
+
end
|
16
|
+
end
|
17
|
+
it 'can modify its values' do
|
18
|
+
options = {
|
19
|
+
raw: 2,
|
20
|
+
since: '1451606400'
|
21
|
+
}
|
22
|
+
described_class.defaults(options)
|
23
|
+
expect(described_class.raw).to eq 2
|
24
|
+
expect(described_class.since).to eq '1451606400'
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,101 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe BackpackTF::Price::ItemPrice do
|
4
|
+
let(:item_price) do
|
5
|
+
key = 'Unique_Tradable_Craftable'
|
6
|
+
described_class.new(key, {})
|
7
|
+
end
|
8
|
+
|
9
|
+
describe '::quality_name_to_index' do
|
10
|
+
before(:each) do
|
11
|
+
allow(described_class).to receive(:qualities).and_return([:foo, :bar])
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'returns index of the quality' do
|
15
|
+
actual = described_class.quality_name_to_index(:bar)
|
16
|
+
expect(actual).to eq 1
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
describe '#split_key' do
|
21
|
+
it 'splits the string by the underscore' do
|
22
|
+
actual = item_price.send(:split_key, 'foo_bar_quux')
|
23
|
+
expected = %w(foo bar quux)
|
24
|
+
expect(actual).to eq expected
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
describe '#currency_or_nil' do
|
29
|
+
it 'returns nil when key is not present' do
|
30
|
+
attr = { 'foo' => 'bar' }
|
31
|
+
actual = item_price.send(:currency_or_nil, attr)
|
32
|
+
expect(actual).to be_nil
|
33
|
+
end
|
34
|
+
|
35
|
+
it 'otherwise returns values as a symbol' do
|
36
|
+
attr = { 'currency' => 'foo' }
|
37
|
+
actual = item_price.send(:currency_or_nil, attr)
|
38
|
+
expect(actual).to eq :foo
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
describe '#pick_particle_effect' do
|
43
|
+
it 'calls ParticleEffect.list' do
|
44
|
+
expect(BackpackTF::Price::ParticleEffect)
|
45
|
+
.to receive(:list)
|
46
|
+
.and_return([:foo, :bar])
|
47
|
+
.at_most(:twice)
|
48
|
+
item_price.send(:pick_particle_effect, '0')
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
describe 'A price for a typical item' do
|
53
|
+
item_price_attr = JSON.parse(file_fixture('item_price_typical.json'))
|
54
|
+
|
55
|
+
subject do
|
56
|
+
described_class.new('Unique_Tradable_Craftable', item_price_attr)
|
57
|
+
end
|
58
|
+
|
59
|
+
context 'item-specific tests' do
|
60
|
+
it 'should have these values' do
|
61
|
+
expect(subject.quality).to eq :Unique
|
62
|
+
expect(subject.tradability).to eq :Tradable
|
63
|
+
expect(subject.craftability).to eq :Craftable
|
64
|
+
expect(subject.currency).to eq :metal
|
65
|
+
expect(subject.value).to eq 0.05
|
66
|
+
expect(subject.value_high).to be_nil
|
67
|
+
expect(subject.value_raw).to be_nil
|
68
|
+
expect(subject.value_high_raw).to be_nil
|
69
|
+
expect(subject.last_update).to eq 1_336_410_088
|
70
|
+
expect(subject.difference).to eq 0
|
71
|
+
expect(subject.priceindex).to be_nil
|
72
|
+
expect(subject.effect).to be_nil
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
describe "A price for an item with 'Unusual' quality" do
|
78
|
+
item_price_attr = JSON.parse(file_fixture('item_price_unusual.json'))
|
79
|
+
|
80
|
+
subject do
|
81
|
+
described_class.new('Unusual_Tradable_Craftable', item_price_attr, 6)
|
82
|
+
end
|
83
|
+
|
84
|
+
context 'item-specific tests' do
|
85
|
+
it 'should have these values' do
|
86
|
+
expect(subject.quality).to eq :Unusual
|
87
|
+
expect(subject.tradability).to eq :Tradable
|
88
|
+
expect(subject.craftability).to eq :Craftable
|
89
|
+
expect(subject.currency).to eq :keys
|
90
|
+
expect(subject.value).to eq 18
|
91
|
+
expect(subject.value_high).to eq 22
|
92
|
+
expect(subject.value_raw).to be_nil
|
93
|
+
expect(subject.value_high_raw).to be_nil
|
94
|
+
expect(subject.last_update).to eq 1_418_795_322
|
95
|
+
expect(subject.difference).to eq 280
|
96
|
+
expect(subject.priceindex).to eq 6
|
97
|
+
expect(subject.effect).to eq 'Green Confetti'
|
98
|
+
end
|
99
|
+
end
|
100
|
+
end
|
101
|
+
end
|