moysklad 0.0.2 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +2 -0
- data/.travis.yml +2 -0
- data/Guardfile +5 -0
- data/Rakefile +6 -0
- data/lib/moysklad/client.rb +1 -1
- data/lib/moysklad/client/errors.rb +6 -4
- data/lib/moysklad/entities.rb +5 -0
- data/lib/moysklad/entities/attribute.rb +27 -2
- data/lib/moysklad/entities/attribute_metadata.rb +27 -0
- data/lib/moysklad/entities/base.rb +10 -0
- data/lib/moysklad/entities/common.rb +0 -1
- data/lib/moysklad/entities/custom_entity.rb +18 -0
- data/lib/moysklad/entities/custom_entity_metadata.rb +35 -0
- data/lib/moysklad/entities/customer_order.rb +4 -0
- data/lib/moysklad/entities/customer_order_position.rb +1 -0
- data/lib/moysklad/entities/embedded_entity_metadata.rb +2 -0
- data/lib/moysklad/entities/feature.rb +2 -3
- data/lib/moysklad/entities/good.rb +12 -9
- data/lib/moysklad/entities/good_folder.rb +9 -0
- data/lib/moysklad/entities/price.rb +1 -1
- data/lib/moysklad/entities/xml_fix.rb +9 -5
- data/lib/moysklad/resources.rb +7 -11
- data/lib/moysklad/resources/base.rb +11 -2
- data/lib/moysklad/resources/custom_entity_metadata.rb +18 -0
- data/lib/moysklad/resources/indexed.rb +56 -46
- data/lib/moysklad/resources/metadata.rb +20 -0
- data/lib/moysklad/resources/metadata_indexed.rb +7 -0
- data/lib/moysklad/resources/subresource.rb +21 -0
- data/lib/moysklad/resources/where_filter.rb +16 -0
- data/lib/moysklad/universe.rb +1 -5
- data/lib/moysklad/version.rb +1 -1
- data/moysklad.gemspec +2 -0
- data/scripts/rest.sh +7 -1
- data/spec/fixtures/302.raw +15 -0
- data/spec/fixtures/400.raw +8 -0
- data/spec/fixtures/CustomEntityMetadata_list.raw +14 -0
- data/spec/fixtures/CustomEntity_list.raw +14 -0
- data/spec/fixtures/Good_e932ebe1-2e22-11e4-9406-002590a28eca.raw +12 -0
- data/spec/fixtures/Good_eb77ad57-2e22-11e4-4030-002590a28eca.raw +12 -0
- data/spec/fixtures/Goods_list.raw +14 -0
- data/spec/fixtures/Metadata_list.raw +14 -0
- data/spec/fixtures/attribute_boolean.xml +6 -0
- data/spec/fixtures/attribute_dictionary.xml +5 -0
- data/spec/fixtures/attribute_double.xml +6 -0
- data/spec/fixtures/attribute_file.xml +12 -0
- data/spec/fixtures/attribute_long.xml +6 -0
- data/spec/fixtures/attribute_text.xml +5 -0
- data/spec/fixtures/attribute_time.xml +6 -0
- data/spec/fixtures/attribute_url.xml +6 -0
- data/spec/fixtures/customer_order.xml +28 -0
- data/spec/fixtures/good_with_attributes.raw +12 -0
- data/spec/lib/moysklad/entities/attribute_metadata_spec.rb +30 -0
- data/spec/lib/moysklad/entities/attribute_spec.rb +36 -0
- data/spec/lib/moysklad/entities/custom_entity_metadata_spec.rb +34 -0
- data/spec/lib/moysklad/entities/custom_entity_spec.rb +35 -0
- data/spec/lib/moysklad/entities/customer_order_position_spec.rb +35 -0
- data/spec/lib/moysklad/entities/customer_order_spec.rb +53 -0
- data/spec/lib/moysklad/entities/good_spec.rb +46 -0
- data/spec/lib/moysklad/resources/base_spec.rb +1 -3
- data/spec/lib/moysklad/resources/custom_entity_metadata_spec.rb +13 -0
- data/spec/lib/moysklad/resources/good_folders_spec.rb +17 -0
- data/spec/lib/moysklad/resources/indexed_spec.rb +31 -3
- data/spec/lib/moysklad/resources/metadata_indexed_spec.rb +20 -0
- data/spec/lib/moysklad/resources/metadata_spec.rb +15 -0
- data/spec/lib/moysklad/resources/subresource_spec.rb +13 -0
- data/spec/lib/moysklad/resources_spec.rb +1 -0
- data/spec/lib/moysklad/universe_spec.rb +1 -0
- data/spec/support/resource.rb +10 -0
- metadata +99 -2
@@ -0,0 +1,12 @@
|
|
1
|
+
HTTP/1.1 200 OK
|
2
|
+
Server: nginx/1.6.2
|
3
|
+
Date: Tue, 25 Nov 2014 12:01:30 GMT
|
4
|
+
Content-Type: application/xml
|
5
|
+
Content-Length: 2605
|
6
|
+
Connection: close
|
7
|
+
Cache-Control: max-age=0
|
8
|
+
Expires: Tue, 25 Nov 2014 12:01:30 GMT
|
9
|
+
Strict-Transport-Security: max-age=15552000
|
10
|
+
|
11
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
12
|
+
<good isSerialTrackable="false" buyPrice="41650.0" weight="3.2" volume="0.0" minPrice="0.0" uomUuid="19f1edc0-fc42-4001-94cb-c9ec9c62ec10" salePrice="300000.0" saleCurrencyUuid="2f7eb413-1666-11e4-9bee-002590a28eca" buyCurrencyUuid="2f7eb413-1666-11e4-9bee-002590a28eca" archived="false" parentUuid="eb576125-2e22-11e4-dd7b-002590a28eca" productCode="R006-P11-17" name="Кольцо Нимфа-2 малое с цирконами и жемчугом серебряное" updated="2014-11-25T14:52:08.066+03:00" updatedBy="admin@wannabejewelry" readMode="ALL" changeMode="NONE"><accountUuid>2f678846-1666-11e4-1e95-002590a28eca</accountUuid><accountId>2f678846-1666-11e4-1e95-002590a28eca</accountId><uuid>eb77ad57-2e22-11e4-4030-002590a28eca</uuid><code></code><externalcode>--7Hmbooi3KoVlMu7aOGV2</externalcode><description></description><attribute goodUuid="eb77ad57-2e22-11e4-4030-002590a28eca" metadataUuid="5abf49e6-7498-11e4-90a2-8ecb0038d40f" entityValueUuid="751b464c-7498-11e4-90a2-8ecb0038d853" updated="2014-11-25T14:52:07.429+03:00" updatedBy="admin@wannabejewelry" readMode="ALL" changeMode="NONE"><accountUuid>2f678846-1666-11e4-1e95-002590a28eca</accountUuid><accountId>2f678846-1666-11e4-1e95-002590a28eca</accountId><uuid>7f0831cf-7499-11e4-90a2-8ecb00390d2b</uuid></attribute><attribute goodUuid="eb77ad57-2e22-11e4-4030-002590a28eca" metadataUuid="54a59b46-7499-11e4-90a2-8ecb0039058c" valueText="test test" updated="2014-11-25T14:52:08.067+03:00" updatedBy="admin@wannabejewelry" readMode="ALL" changeMode="NONE"><accountUuid>2f678846-1666-11e4-1e95-002590a28eca</accountUuid><accountId>2f678846-1666-11e4-1e95-002590a28eca</accountId><uuid>6e9bda3c-7499-11e4-90a2-8ecb00390a08</uuid></attribute><attribute goodUuid="eb77ad57-2e22-11e4-4030-002590a28eca" metadataUuid="ffdf0643-7493-11e4-90a2-8ecb0037b75b" entityValueUuid="d3f18c9e-7493-11e4-90a2-8ecb0037ae75" updated="2014-11-25T14:38:48.876+03:00" updatedBy="admin@wannabejewelry" readMode="ALL" changeMode="NONE"><accountUuid>2f678846-1666-11e4-1e95-002590a28eca</accountUuid><accountId>2f678846-1666-11e4-1e95-002590a28eca</accountId><uuid>a30eb457-7497-11e4-90a2-8ecb0038ae7b</uuid></attribute><salePrices><price currencyUuid="2f7eb413-1666-11e4-9bee-002590a28eca" priceTypeUuid="2f7ee9c7-1666-11e4-5b14-002590a28eca" value="300000.0" readMode="ALL" changeMode="ALL"><accountUuid>2f678846-1666-11e4-1e95-002590a28eca</accountUuid><accountId>2f678846-1666-11e4-1e95-002590a28eca</accountId><uuid>eb77b286-2e22-11e4-545e-002590a28eca</uuid></price></salePrices><preferences/><images/></good>
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Moysklad::Entities::AttributeMetadata do
|
4
|
+
let(:metadata_resource) { Moysklad::Resources::Metadata.indexed client: client }
|
5
|
+
let(:subresource) { metadata_resource.subresource_by_name :GoodFolder }
|
6
|
+
let(:attribute_metadata) { subresource.items.first }
|
7
|
+
|
8
|
+
before do
|
9
|
+
stub_rest :Metadata, :list, 0
|
10
|
+
stub_rest :CustomEntityMetadata, :list, 0
|
11
|
+
end
|
12
|
+
|
13
|
+
context do
|
14
|
+
subject { attribute_metadata.dictionatyMetadata universe }
|
15
|
+
it do
|
16
|
+
expect(subject).to be_a Moysklad::Entities::CustomEntityMetadata
|
17
|
+
expect(subject.uuid).to eq attribute_metadata.dictionaryMetadataUuid
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
context do
|
22
|
+
subject { attribute_metadata.entityMetadata universe }
|
23
|
+
|
24
|
+
it do
|
25
|
+
expect(subject).to be_a Moysklad::Entities::EmbeddedEntityMetadata
|
26
|
+
expect(subject.uuid).to eq attribute_metadata.entityMetadataUuid
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
@@ -0,0 +1,36 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Moysklad::Entities::Attribute do
|
4
|
+
let(:good_uuid) { 'eb77ad57-2e22-11e4-4030-002590a28eca' }
|
5
|
+
|
6
|
+
before do
|
7
|
+
stub_rest :Good, good_uuid
|
8
|
+
stub_rest :Metadata, :list, 0
|
9
|
+
stub_rest :CustomEntity, :list, 0
|
10
|
+
end
|
11
|
+
|
12
|
+
let(:goods_resource) { Moysklad::Resources::Goods.indexed client: client }
|
13
|
+
let(:good) { goods_resource.get good_uuid }
|
14
|
+
|
15
|
+
let(:attribute_with_id_custom) { good.attributes.first }
|
16
|
+
let(:attribute_with_text) { good.attributes.second }
|
17
|
+
|
18
|
+
it 'should get ' do
|
19
|
+
expect(good).to be_a Moysklad::Entities::Good
|
20
|
+
end
|
21
|
+
|
22
|
+
describe 'аттрибут типа ID_CUSTOM' do
|
23
|
+
subject { attribute_with_id_custom }
|
24
|
+
|
25
|
+
it do
|
26
|
+
expect(subject.metadata(universe)).to be_a Moysklad::Entities::AttributeMetadata
|
27
|
+
expect(subject.metadata(universe).name).to eq 'Вставки'
|
28
|
+
expect(subject.attributeName(universe)).to eq 'Вставки'
|
29
|
+
end
|
30
|
+
|
31
|
+
it do
|
32
|
+
expect(subject.get_value(universe)).to eq "Культ. жемчуг, куб. циркон"
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Moysklad::Entities::CustomEntityMetadata do
|
4
|
+
before do
|
5
|
+
stub_rest :CustomEntityMetadata, :list, 0
|
6
|
+
stub_rest :CustomEntity, :list, 0
|
7
|
+
end
|
8
|
+
|
9
|
+
let(:resource) { Moysklad::Resources::CustomEntityMetadata.indexed client: client }
|
10
|
+
|
11
|
+
describe do
|
12
|
+
let(:custom_entity_metadata) { resource.all.first }
|
13
|
+
|
14
|
+
subject { custom_entity_metadata }
|
15
|
+
|
16
|
+
it do
|
17
|
+
expect(subject).to be_a Moysklad::Entities::CustomEntityMetadata
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'unicoded xml' do
|
21
|
+
expect(subject.to_xml).to start_with '<?xml version="1.0" encoding="utf-8"?>'
|
22
|
+
end
|
23
|
+
|
24
|
+
context 'entities' do
|
25
|
+
|
26
|
+
it do
|
27
|
+
expect(subject.entities(universe)).to be_a Array
|
28
|
+
expect(subject.entities(universe).first).to be_a Moysklad::Entities::CustomEntity
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Moysklad::Entities::CustomEntity do
|
4
|
+
|
5
|
+
before do
|
6
|
+
stub_rest :CustomEntityMetadata, :list, 0
|
7
|
+
stub_rest :CustomEntity, :list, 0
|
8
|
+
end
|
9
|
+
|
10
|
+
let(:resource) { Moysklad::Resources::CustomEntities.indexed client: client }
|
11
|
+
|
12
|
+
describe do
|
13
|
+
let(:custom_entity) { resource.all.first }
|
14
|
+
|
15
|
+
subject { custom_entity }
|
16
|
+
|
17
|
+
it do
|
18
|
+
expect(subject).to be_a Moysklad::Entities::CustomEntity
|
19
|
+
end
|
20
|
+
|
21
|
+
it 'unicoded xml' do
|
22
|
+
expect(subject.to_xml).to start_with '<?xml version="1.0" encoding="utf-8"?>'
|
23
|
+
end
|
24
|
+
|
25
|
+
context 'entityMetadata' do
|
26
|
+
|
27
|
+
it do
|
28
|
+
expect(subject.entityMetadata(universe)).to be_a Moysklad::Entities::CustomEntityMetadata
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
@@ -0,0 +1,35 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Moysklad::Entities::CustomerOrderPosition do
|
4
|
+
context 'generate' do
|
5
|
+
subject {
|
6
|
+
p= Moysklad::Entities::CustomerOrderPosition.new
|
7
|
+
p.vat = 18
|
8
|
+
p.basePrice = Moysklad::Entities::Price.new
|
9
|
+
p.basePrice.sum = 123
|
10
|
+
p.reserve = true
|
11
|
+
p
|
12
|
+
}
|
13
|
+
|
14
|
+
it 'to_xml' do
|
15
|
+
expect(subject.to_xml).to be_a String
|
16
|
+
end
|
17
|
+
|
18
|
+
it 'to_s' do
|
19
|
+
expect(subject.to_s).to be_a String
|
20
|
+
end
|
21
|
+
|
22
|
+
it 'include xml' do
|
23
|
+
expect(subject.to_xml).to include '<?xml version="1.0" encoding="utf-8"?>'
|
24
|
+
end
|
25
|
+
|
26
|
+
it 'include customerOrderPosition' do
|
27
|
+
expect(subject.to_xml).to include "<customerOrderPosition"
|
28
|
+
end
|
29
|
+
|
30
|
+
it 'include basePrice' do
|
31
|
+
expect(subject.to_xml).to include "<basePrice"
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Moysklad::Entities::CustomerOrder do
|
4
|
+
context 'generate' do
|
5
|
+
subject {
|
6
|
+
p= Moysklad::Entities::CustomerOrderPosition.new
|
7
|
+
p.vat = 18
|
8
|
+
p.basePrice = Moysklad::Entities::Price.new
|
9
|
+
p.basePrice.sum = 123
|
10
|
+
p.reserve = true
|
11
|
+
|
12
|
+
co = Moysklad::Entities::CustomerOrder.new
|
13
|
+
co.sum = Moysklad::Entities::Price.new
|
14
|
+
co.sum.sum = 456
|
15
|
+
co.description = 'Описание'
|
16
|
+
co.customerOrderPosition = p
|
17
|
+
co
|
18
|
+
}
|
19
|
+
|
20
|
+
it 'to_xml' do
|
21
|
+
expect(subject.to_xml).to be_a String
|
22
|
+
end
|
23
|
+
|
24
|
+
it 'to_s' do
|
25
|
+
expect(subject.to_s).to be_a String
|
26
|
+
end
|
27
|
+
|
28
|
+
it 'include xml' do
|
29
|
+
expect(subject.to_xml).to include '<?xml version="1.0" encoding="utf-8"?>'
|
30
|
+
end
|
31
|
+
|
32
|
+
it 'include customerOrder' do
|
33
|
+
expect(subject.to_xml).to include "<customerOrder"
|
34
|
+
end
|
35
|
+
|
36
|
+
it 'include customerOrderPosition' do
|
37
|
+
expect(subject.to_xml).to include "<customerOrderPosition"
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
context 'parse' do
|
42
|
+
subject { Moysklad::Entities::CustomerOrder.parse File.read './spec/fixtures/customer_order.xml' }
|
43
|
+
|
44
|
+
it 'include customerOrder' do
|
45
|
+
expect(subject.to_xml).to include "<customerOrder"
|
46
|
+
end
|
47
|
+
|
48
|
+
it 'include customerOrderPosition' do
|
49
|
+
expect(subject.to_xml).to include "<customerOrderPosition"
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Moysklad::Entities::Good do
|
4
|
+
let(:good_uuid) { 'eb77ad57-2e22-11e4-4030-002590a28eca' }
|
5
|
+
|
6
|
+
let(:raw_response) { File.new "./spec/fixtures/Good_#{good_uuid}.raw" }
|
7
|
+
let(:raw_features_list_response) { File.new "./spec/fixtures/Feature_list.raw" }
|
8
|
+
|
9
|
+
before do
|
10
|
+
stub_request(:get, "https://online.moysklad.ru/exchange/rest/ms/xml/Good/#{good_uuid}").to_return(raw_response)
|
11
|
+
stub_request(:get, "https://online.moysklad.ru/exchange/rest/ms/xml/Feature/list?start=0").to_return(raw_features_list_response)
|
12
|
+
end
|
13
|
+
|
14
|
+
let(:goods_resource) { Moysklad::Resources::Goods.indexed client: client }
|
15
|
+
let(:good) { goods_resource.get good_uuid }
|
16
|
+
|
17
|
+
describe 'features' do
|
18
|
+
let(:features) { good.features universe }
|
19
|
+
|
20
|
+
it do
|
21
|
+
expect(features).to be_a Array
|
22
|
+
expect(features.count).to eq 3
|
23
|
+
end
|
24
|
+
|
25
|
+
context do
|
26
|
+
subject { features.first }
|
27
|
+
it do
|
28
|
+
expect(subject).to be_a Moysklad::Entities::Feature
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
it 'to_xml' do
|
34
|
+
expect(subject.to_xml).to be_a String
|
35
|
+
expect(subject.to_xml).to include "<?xml"
|
36
|
+
expect(subject.to_xml).to include "<?xml version=\"1.0\" encoding=\"utf-8\"?>"
|
37
|
+
end
|
38
|
+
|
39
|
+
describe 'attribute' do
|
40
|
+
it do
|
41
|
+
expect(good.attributes).to be_a Array
|
42
|
+
expect(good.attributes.first).to be_a Moysklad::Entities::Attribute
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
end
|
@@ -15,12 +15,10 @@ describe Moysklad::Resources::Base do
|
|
15
15
|
end
|
16
16
|
|
17
17
|
describe 'collection' do
|
18
|
-
let(:raw_response) { raw_feature_list }
|
19
18
|
let(:resource) { Moysklad::Resources::Features.new client: client }
|
20
|
-
let(:url) { resource_list_url }
|
21
19
|
|
22
20
|
before do
|
23
|
-
|
21
|
+
stub_rest :Feature
|
24
22
|
end
|
25
23
|
|
26
24
|
subject { resource.collection }
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Moysklad::Resources::CustomEntityMetadata do
|
4
|
+
|
5
|
+
describe do
|
6
|
+
subject { described_class.new client: client }
|
7
|
+
it 'should get list' do
|
8
|
+
expect(subject.send(:list_path)).to eq "exchange/rest/ms/xml/CustomEntityMetadata/list"
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
end
|
13
|
+
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Moysklad::Resources::GoodFolders do
|
4
|
+
|
5
|
+
it 'should be GoodFolder' do
|
6
|
+
expect(described_class.entity_class).to eq Moysklad::Entities::GoodFolder
|
7
|
+
end
|
8
|
+
|
9
|
+
describe 'resource' do
|
10
|
+
subject { Moysklad::Resources::GoodFolders.new client: client }
|
11
|
+
|
12
|
+
it 'should get item' do
|
13
|
+
expect(subject.send(:list_path)).to eq "exchange/rest/ms/xml/GoodFolder/list"
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
@@ -7,7 +7,9 @@ describe Moysklad::Resources::Indexed do
|
|
7
7
|
stub_consignments_requests
|
8
8
|
end
|
9
9
|
|
10
|
-
|
10
|
+
let(:resource) { Moysklad::Resources::Indexed.new consignments_resource }
|
11
|
+
|
12
|
+
subject { resource }
|
11
13
|
|
12
14
|
it 'загружено верное количество данных' do
|
13
15
|
expect(subject.all.count).to eq items_count
|
@@ -23,11 +25,37 @@ describe Moysklad::Resources::Indexed do
|
|
23
25
|
end
|
24
26
|
|
25
27
|
it 'элемет получаем из кеша' do
|
26
|
-
expect(subject.
|
28
|
+
expect(subject.find uuid).to be_a consignments_resource.class.entity_class
|
27
29
|
expect(WebMock).to have_requested(:get, resource_list_url(consignments_resource, 0)).once
|
28
30
|
expect(WebMock).to have_requested(:get, resource_list_url(consignments_resource, 1000)).once
|
29
31
|
end
|
30
32
|
end
|
31
33
|
|
32
|
-
|
34
|
+
describe 'filtered?' do
|
35
|
+
subject { resource.send :filtered?, item, filter }
|
33
36
|
|
37
|
+
context 'под фильтр попадает все если фильтр пуст' do
|
38
|
+
let(:item) { double }
|
39
|
+
let(:filter) { {} }
|
40
|
+
it do
|
41
|
+
expect(subject).to be true
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
context 'отсеивает что не надо' do
|
46
|
+
let(:item) { double some_key: 123 }
|
47
|
+
let(:filter) { { some_key: 124} }
|
48
|
+
it do
|
49
|
+
expect(subject).to be false
|
50
|
+
end
|
51
|
+
end
|
52
|
+
context 'фильтрует что надо' do
|
53
|
+
let(:item) { double some_key: 123 }
|
54
|
+
let(:filter) { { some_key: 123} }
|
55
|
+
it do
|
56
|
+
expect(subject).to be true
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Moysklad::Resources::MetadataIndexed do
|
4
|
+
|
5
|
+
let(:article_uuid) { 'dc410ce3-505a-11e4-90a2-8eca00496371' }
|
6
|
+
|
7
|
+
before do
|
8
|
+
stub_rest :Metadata, :list, 0
|
9
|
+
end
|
10
|
+
|
11
|
+
describe 'subresource' do
|
12
|
+
let(:metadata_resource) { Moysklad::Resources::Metadata.indexed client: client }
|
13
|
+
subject { metadata_resource.subresource_by_name :GoodFolder }
|
14
|
+
|
15
|
+
it { expect(subject).to be_a Moysklad::Resources::Subresource }
|
16
|
+
it { expect(subject.items.first).to be_a Moysklad::Entities::AttributeMetadata }
|
17
|
+
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Moysklad::Resources::Metadata do
|
4
|
+
it 'should be loaded' do
|
5
|
+
expect(Moysklad::Resources::Metadata).to be_a Class
|
6
|
+
end
|
7
|
+
|
8
|
+
describe do
|
9
|
+
subject { Moysklad::Resources::Metadata.new client: client }
|
10
|
+
it 'should get list' do
|
11
|
+
expect(subject.send(:list_path)).to eq "exchange/rest/ms/xml/Metadata/list"
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
end
|