stitches 3.2.2 → 3.2.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 88481c42da4d9e07d58401429c123d0042e0f196
4
- data.tar.gz: d042b0b4103d22217b62123be762dbf1af9dd610
3
+ metadata.gz: a861f11796bfcc697ded1857fe96d0b0dfbc73ab
4
+ data.tar.gz: 831d978bdf931a550a6af1fe1779e8216f6f56b0
5
5
  SHA512:
6
- metadata.gz: c91377aef8b39bad255cf2c0bce0d5b36a83baa15f84b475332b9662c5a1c75adf3cee15574145792e3496fcd8a5d289416c074e974d28ccf3b0f9a17088530e
7
- data.tar.gz: 016a482c093d53c5a46812ed632e5a1b44652ab9df3554e6ea3f9539368a7331a67ffce688c79540006b7f8c623e90b1c745659cbbcc72e663f3180d2853c56a
6
+ metadata.gz: fd50b87dbe2f27d96d287de362ff8ae19479b3c47793d1700d988597b88b408f2ffa56fd4d29ab5a905336fce67fab4824b6caf342d9175f8ad8e11dad702240
7
+ data.tar.gz: 1df173eeecc1a8e16640ab1b50c5fe2d406180f381414c6fd1ff606a2a959f56970377f99236c0b9c456b8a1a233c5aa95923af5d5b955cf828bc29cc7951a53
@@ -1 +1 @@
1
- 2.1.5
1
+ 2.3.0
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- stitches (3.2.2)
4
+ stitches (3.2.3)
5
5
  apitome
6
6
  pg
7
7
  rails
@@ -11,36 +11,36 @@ PATH
11
11
  GEM
12
12
  remote: https://www.rubygems.org/
13
13
  specs:
14
- actionmailer (4.2.3)
15
- actionpack (= 4.2.3)
16
- actionview (= 4.2.3)
17
- activejob (= 4.2.3)
14
+ actionmailer (4.2.5.2)
15
+ actionpack (= 4.2.5.2)
16
+ actionview (= 4.2.5.2)
17
+ activejob (= 4.2.5.2)
18
18
  mail (~> 2.5, >= 2.5.4)
19
19
  rails-dom-testing (~> 1.0, >= 1.0.5)
20
- actionpack (4.2.3)
21
- actionview (= 4.2.3)
22
- activesupport (= 4.2.3)
20
+ actionpack (4.2.5.2)
21
+ actionview (= 4.2.5.2)
22
+ activesupport (= 4.2.5.2)
23
23
  rack (~> 1.6)
24
24
  rack-test (~> 0.6.2)
25
25
  rails-dom-testing (~> 1.0, >= 1.0.5)
26
26
  rails-html-sanitizer (~> 1.0, >= 1.0.2)
27
- actionview (4.2.3)
28
- activesupport (= 4.2.3)
27
+ actionview (4.2.5.2)
28
+ activesupport (= 4.2.5.2)
29
29
  builder (~> 3.1)
30
30
  erubis (~> 2.7.0)
31
31
  rails-dom-testing (~> 1.0, >= 1.0.5)
32
32
  rails-html-sanitizer (~> 1.0, >= 1.0.2)
33
- activejob (4.2.3)
34
- activesupport (= 4.2.3)
33
+ activejob (4.2.5.2)
34
+ activesupport (= 4.2.5.2)
35
35
  globalid (>= 0.3.0)
36
- activemodel (4.2.3)
37
- activesupport (= 4.2.3)
36
+ activemodel (4.2.5.2)
37
+ activesupport (= 4.2.5.2)
38
38
  builder (~> 3.1)
39
- activerecord (4.2.3)
40
- activemodel (= 4.2.3)
41
- activesupport (= 4.2.3)
39
+ activerecord (4.2.5.2)
40
+ activemodel (= 4.2.5.2)
41
+ activesupport (= 4.2.5.2)
42
42
  arel (~> 6.0)
43
- activesupport (4.2.3)
43
+ activesupport (4.2.5.2)
44
44
  i18n (~> 0.7)
45
45
  json (~> 1.7, >= 1.7.7)
46
46
  minitest (~> 5.1)
@@ -52,84 +52,86 @@ GEM
52
52
  rspec_api_documentation
53
53
  arel (6.0.3)
54
54
  builder (3.2.2)
55
+ concurrent-ruby (1.0.1)
55
56
  diff-lcs (1.2.5)
56
57
  erubis (2.7.0)
57
58
  globalid (0.3.6)
58
59
  activesupport (>= 4.1.0)
59
60
  i18n (0.7.0)
60
61
  json (1.8.3)
61
- kramdown (1.8.0)
62
- loofah (2.0.2)
62
+ kramdown (1.10.0)
63
+ loofah (2.0.3)
63
64
  nokogiri (>= 1.5.9)
64
65
  mail (2.6.3)
65
66
  mime-types (>= 1.16, < 3)
66
- mime-types (2.6.1)
67
- mini_portile (0.6.2)
68
- minitest (5.8.0)
67
+ mime-types (2.99.1)
68
+ mini_portile2 (2.0.0)
69
+ minitest (5.8.4)
69
70
  mustache (0.99.8)
70
- nokogiri (1.6.6.2)
71
- mini_portile (~> 0.6.0)
72
- pg (0.18.2)
71
+ nokogiri (1.6.7.2)
72
+ mini_portile2 (~> 2.0.0.rc2)
73
+ pg (0.18.4)
73
74
  rack (1.6.4)
74
75
  rack-test (0.6.3)
75
76
  rack (>= 1.0)
76
- rails (4.2.3)
77
- actionmailer (= 4.2.3)
78
- actionpack (= 4.2.3)
79
- actionview (= 4.2.3)
80
- activejob (= 4.2.3)
81
- activemodel (= 4.2.3)
82
- activerecord (= 4.2.3)
83
- activesupport (= 4.2.3)
77
+ rails (4.2.5.2)
78
+ actionmailer (= 4.2.5.2)
79
+ actionpack (= 4.2.5.2)
80
+ actionview (= 4.2.5.2)
81
+ activejob (= 4.2.5.2)
82
+ activemodel (= 4.2.5.2)
83
+ activerecord (= 4.2.5.2)
84
+ activesupport (= 4.2.5.2)
84
85
  bundler (>= 1.3.0, < 2.0)
85
- railties (= 4.2.3)
86
+ railties (= 4.2.5.2)
86
87
  sprockets-rails
87
88
  rails-deprecated_sanitizer (1.0.3)
88
89
  activesupport (>= 4.2.0.alpha)
89
- rails-dom-testing (1.0.6)
90
+ rails-dom-testing (1.0.7)
90
91
  activesupport (>= 4.2.0.beta, < 5.0)
91
92
  nokogiri (~> 1.6.0)
92
93
  rails-deprecated_sanitizer (>= 1.0.1)
93
- rails-html-sanitizer (1.0.2)
94
+ rails-html-sanitizer (1.0.3)
94
95
  loofah (~> 2.0)
95
- railties (4.2.3)
96
- actionpack (= 4.2.3)
97
- activesupport (= 4.2.3)
96
+ railties (4.2.5.2)
97
+ actionpack (= 4.2.5.2)
98
+ activesupport (= 4.2.5.2)
98
99
  rake (>= 0.8.7)
99
100
  thor (>= 0.18.1, < 2.0)
100
- rake (10.4.2)
101
- rspec (3.3.0)
102
- rspec-core (~> 3.3.0)
103
- rspec-expectations (~> 3.3.0)
104
- rspec-mocks (~> 3.3.0)
105
- rspec-core (3.3.2)
106
- rspec-support (~> 3.3.0)
107
- rspec-expectations (3.3.1)
101
+ rake (10.5.0)
102
+ rspec (3.4.0)
103
+ rspec-core (~> 3.4.0)
104
+ rspec-expectations (~> 3.4.0)
105
+ rspec-mocks (~> 3.4.0)
106
+ rspec-core (3.4.3)
107
+ rspec-support (~> 3.4.0)
108
+ rspec-expectations (3.4.0)
108
109
  diff-lcs (>= 1.2.0, < 2.0)
109
- rspec-support (~> 3.3.0)
110
- rspec-mocks (3.3.2)
110
+ rspec-support (~> 3.4.0)
111
+ rspec-mocks (3.4.1)
111
112
  diff-lcs (>= 1.2.0, < 2.0)
112
- rspec-support (~> 3.3.0)
113
- rspec-rails (3.3.3)
113
+ rspec-support (~> 3.4.0)
114
+ rspec-rails (3.4.2)
114
115
  actionpack (>= 3.0, < 4.3)
115
116
  activesupport (>= 3.0, < 4.3)
116
117
  railties (>= 3.0, < 4.3)
117
- rspec-core (~> 3.3.0)
118
- rspec-expectations (~> 3.3.0)
119
- rspec-mocks (~> 3.3.0)
120
- rspec-support (~> 3.3.0)
121
- rspec-support (3.3.0)
122
- rspec_api_documentation (4.4.0)
118
+ rspec-core (~> 3.4.0)
119
+ rspec-expectations (~> 3.4.0)
120
+ rspec-mocks (~> 3.4.0)
121
+ rspec-support (~> 3.4.0)
122
+ rspec-support (3.4.1)
123
+ rspec_api_documentation (4.7.0)
123
124
  activesupport (>= 3.0.0)
124
125
  json (~> 1.4, >= 1.4.6)
125
126
  mustache (~> 0.99, >= 0.99.4)
126
127
  rspec (>= 3.0.0)
127
- sprockets (3.3.0)
128
- rack (~> 1.0)
129
- sprockets-rails (2.3.2)
130
- actionpack (>= 3.0)
131
- activesupport (>= 3.0)
132
- sprockets (>= 2.8, < 4.0)
128
+ sprockets (3.5.2)
129
+ concurrent-ruby (~> 1.0)
130
+ rack (> 1, < 3)
131
+ sprockets-rails (3.0.4)
132
+ actionpack (>= 4.0)
133
+ activesupport (>= 4.0)
134
+ sprockets (>= 3.0.0)
133
135
  thor (0.19.1)
134
136
  thread_safe (0.3.5)
135
137
  tzinfo (1.2.2)
@@ -143,4 +145,4 @@ DEPENDENCIES
143
145
  stitches!
144
146
 
145
147
  BUNDLED WITH
146
- 1.10.6
148
+ 1.11.2
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  You'll be in stitches at how easy it is to get your API service up and running!
2
2
 
3
- ![build status](https://travis-ci.org/stitchfix/resque-brain.svg?branch=master)
3
+ ![build status](https://travis-ci.org/stitchfix/stitches.svg?branch=master)
4
4
 
5
5
  This gem provides:
6
6
 
@@ -31,16 +31,13 @@ RSpec::Matchers.define :have_api_error do |expected_fields|
31
31
  end
32
32
 
33
33
  failure_message do |response|
34
- if response.response_code != (expected_fields[:status] || 422)
35
- "HTTP status was #{response.response_code} and not 422"
34
+ expected_status = (expected_fields[:status] || 422)
35
+ if response.response_code != expected_status
36
+ "HTTP status was #{response.response_code} and not #{expected_status}"
36
37
  else
37
38
  error = extract_error(response,expected_fields)
38
39
  if error
39
- if error["code"] != expected_fields.fetch(:code)
40
- "Expected code to be '#{expected_fields[:code]}', but was '#{error['code']}'"
41
- else
42
- "Expected message to be '#{expected_fields[:message]}', but was '#{error['message']}'"
43
- end
40
+ "Expected message to be '#{expected_fields[:message]}', but was '#{error['message']}'"
44
41
  else
45
42
  "Could not find an error for code #{expected_fields[:code]} from #{response.body}"
46
43
  end
@@ -1,3 +1,3 @@
1
1
  module Stitches
2
- VERSION = '3.2.2'
2
+ VERSION = '3.2.3'
3
3
  end
@@ -8,6 +8,7 @@ describe "have_api_error" do
8
8
  { code: "baz", message: "quux" }
9
9
  ]
10
10
  }
11
+ let(:response_code) { 422 }
11
12
  let(:response) {
12
13
  double(
13
14
  response_code: response_code,
@@ -60,10 +61,31 @@ describe "have_api_error" do
60
61
  context "expected status is specified" do
61
62
  context "status is the expected status" do
62
63
  let(:response_code) { 404 }
63
- it "indicates there is an error" do
64
- expect(response).to have_api_error(status: 404,
65
- code: errors.first[:code],
66
- message: errors.first[:message])
64
+ context "there is an error" do
65
+ it "indicates there is an error" do
66
+ expect(response).to have_api_error(status: 404,
67
+ code: errors.first[:code],
68
+ message: errors.first[:message])
69
+ end
70
+ end
71
+ context "there is not an error" do
72
+ context "and the status code is what's wrong" do
73
+ let(:response) {
74
+ double(
75
+ response_code: 401,
76
+ body: { errors: errors }.to_json)
77
+ }
78
+ it "fails the test" do
79
+ begin
80
+ expect(response).to have_api_error(status: 404,
81
+ code: errors.first[:code],
82
+ message: errors.first[:message])
83
+ rescue Exception => ex
84
+ expect(ex.class).to eq(RSpec::Expectations::ExpectationNotMetError)
85
+ expect(ex.message).to match(/HTTP status was 401 and not 404/i)
86
+ end
87
+ end
88
+ end
67
89
  end
68
90
  end
69
91
  context "status is not the expected status" do
@@ -74,5 +96,57 @@ describe "have_api_error" do
74
96
  message: errors.first[:bar])
75
97
  end
76
98
  end
99
+ context "response errors don't match expectations" do
100
+ context "because the status code is what's wrong" do
101
+ let(:response) {
102
+ double(
103
+ response_code: 401,
104
+ body: { errors: errors }.to_json)
105
+ }
106
+ it "fails the test" do
107
+ begin
108
+ expect(response).to have_api_error(code: errors.first[:code],
109
+ message: errors.first[:message])
110
+ rescue Exception => ex
111
+ expect(ex.class).to eq(RSpec::Expectations::ExpectationNotMetError)
112
+ expect(ex.message).to match(/HTTP status was 401 and not 422/i)
113
+ end
114
+ end
115
+ end
116
+ context "because there is no matching code" do
117
+ let(:errors) {
118
+ [
119
+ { code: "foo", message: "bar" },
120
+ { code: "baz", message: "quux" }
121
+ ]
122
+ }
123
+ it "fails the test" do
124
+ begin
125
+ expect(response).to have_api_error(code: errors.first[:code] + "blah",
126
+ message: errors.first[:message])
127
+ rescue Exception => ex
128
+ expect(ex.class).to eq(RSpec::Expectations::ExpectationNotMetError)
129
+ expect(ex.message).to match(/Could not find an error for code/i)
130
+ end
131
+ end
132
+ end
133
+ context "because there is no matching message" do
134
+ let(:errors) {
135
+ [
136
+ { code: "foo", message: "bar" },
137
+ { code: "baz", message: "quux" }
138
+ ]
139
+ }
140
+ it "fails the test" do
141
+ begin
142
+ expect(response).to have_api_error(code: errors.first[:code],
143
+ message: errors.first[:message] + "blah")
144
+ rescue Exception => ex
145
+ expect(ex.class).to eq(RSpec::Expectations::ExpectationNotMetError)
146
+ expect(ex.message).to match(/Expected message to be/i)
147
+ end
148
+ end
149
+ end
150
+ end
77
151
  end
78
152
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stitches
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.2.2
4
+ version: 3.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stitch Fix Engineering
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2015-11-20 00:00:00.000000000 Z
14
+ date: 2016-07-06 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: rails
@@ -179,7 +179,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
179
179
  version: '0'
180
180
  requirements: []
181
181
  rubyforge_project:
182
- rubygems_version: 2.4.3
182
+ rubygems_version: 2.6.6
183
183
  signing_key:
184
184
  specification_version: 4
185
185
  summary: You'll be in stitches at how easy it is to create a service at Stitch Fix