namely 0.0.1 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +22 -24
- data/lib/namely.rb +2 -101
- data/lib/namely/authenticator.rb +61 -14
- data/lib/namely/collection.rb +78 -0
- data/lib/namely/connection.rb +90 -0
- data/lib/namely/exceptions.rb +0 -3
- data/lib/namely/model.rb +78 -0
- data/lib/namely/resource_gateway.rb +7 -2
- data/lib/namely/version.rb +1 -1
- data/spec/fixtures/vcr_cassettes/{country_head.yml → countries_head.yml} +4 -4
- data/spec/fixtures/vcr_cassettes/{country_head_missing.yml → countries_head_missing.yml} +4 -4
- data/spec/fixtures/vcr_cassettes/{country_index.yml → countries_index.yml} +6 -6
- data/spec/fixtures/vcr_cassettes/{country_show.yml → countries_show.yml} +4 -4
- data/spec/fixtures/vcr_cassettes/{country_show_missing.yml → countries_show_missing.yml} +7 -7
- data/spec/fixtures/vcr_cassettes/{currencytype_index.yml → currency_types_index.yml} +5 -5
- data/spec/fixtures/vcr_cassettes/current_user.yml +57 -0
- data/spec/fixtures/vcr_cassettes/{event_head.yml → events_head.yml} +4 -4
- data/spec/fixtures/vcr_cassettes/{event_head_missing.yml → events_head_missing.yml} +5 -5
- data/spec/fixtures/vcr_cassettes/events_index.yml +89 -0
- data/spec/fixtures/vcr_cassettes/{event_show.yml → events_show.yml} +5 -5
- data/spec/fixtures/vcr_cassettes/{event_show_missing.yml → events_show_missing.yml} +6 -6
- data/spec/fixtures/vcr_cassettes/fields_index.yml +48 -0
- data/spec/fixtures/vcr_cassettes/{jobtier_index.yml → job_tiers_index.yml} +5 -5
- data/spec/fixtures/vcr_cassettes/{field_index.yml → profiles/fields_index.yml} +5 -5
- data/spec/fixtures/vcr_cassettes/profiles_create.yml +85 -0
- data/spec/fixtures/vcr_cassettes/{profile_create_failed.yml → profiles_create_failed.yml} +9 -10
- data/spec/fixtures/vcr_cassettes/{profile_head.yml → profiles_head.yml} +4 -4
- data/spec/fixtures/vcr_cassettes/{profile_head_missing.yml → profiles_head_missing.yml} +4 -4
- data/spec/fixtures/vcr_cassettes/profiles_index.yml +981 -0
- data/spec/fixtures/vcr_cassettes/{profile_show.yml → profiles_show.yml} +4 -4
- data/spec/fixtures/vcr_cassettes/{profile_show_missing.yml → profiles_show_missing.yml} +7 -7
- data/spec/fixtures/vcr_cassettes/profiles_show_updated.yml +91 -0
- data/spec/fixtures/vcr_cassettes/profiles_update.yml +95 -0
- data/spec/fixtures/vcr_cassettes/profiles_update_revert.yml +95 -0
- data/spec/fixtures/vcr_cassettes/{report_head.yml → reports_head.yml} +4 -4
- data/spec/fixtures/vcr_cassettes/{report_head_missing.yml → reports_head_missing.yml} +5 -5
- data/spec/fixtures/vcr_cassettes/reports_show.yml +186 -0
- data/spec/fixtures/vcr_cassettes/{report_show_missing.yml → reports_show_missing.yml} +7 -7
- data/spec/fixtures/vcr_cassettes/token.yml +6 -6
- data/spec/namely/authenticator_spec.rb +36 -0
- data/spec/namely/connection_spec.rb +15 -0
- data/spec/namely/integration_spec.rb +94 -0
- data/spec/namely/resource_gateway_spec.rb +18 -10
- data/spec/shared_examples/a_resource_with_a_create_action.rb +24 -0
- data/spec/shared_examples/a_resource_with_a_show_action.rb +38 -0
- data/spec/shared_examples/a_resource_with_an_index_action.rb +15 -0
- data/spec/shared_examples/{a_model_with_an_update_action.rb → a_resource_with_an_update_action.rb} +10 -9
- data/spec/spec_helper.rb +0 -17
- metadata +75 -88
- data/lib/namely/country.rb +0 -9
- data/lib/namely/currency_type.rb +0 -9
- data/lib/namely/event.rb +0 -9
- data/lib/namely/field.rb +0 -9
- data/lib/namely/job_tier.rb +0 -9
- data/lib/namely/profile.rb +0 -13
- data/lib/namely/report.rb +0 -9
- data/lib/namely/restful_model.rb +0 -150
- data/spec/fixtures/vcr_cassettes/event_index.yml +0 -88
- data/spec/fixtures/vcr_cassettes/profile_create.yml +0 -85
- data/spec/fixtures/vcr_cassettes/profile_index.yml +0 -979
- data/spec/fixtures/vcr_cassettes/profile_show_updated.yml +0 -91
- data/spec/fixtures/vcr_cassettes/profile_update.yml +0 -95
- data/spec/fixtures/vcr_cassettes/profile_update_revert.yml +0 -95
- data/spec/fixtures/vcr_cassettes/report_show.yml +0 -185
- data/spec/namely/configuration_spec.rb +0 -33
- data/spec/namely/country_spec.rb +0 -11
- data/spec/namely/currency_type_spec.rb +0 -5
- data/spec/namely/event_spec.rb +0 -11
- data/spec/namely/field_spec.rb +0 -5
- data/spec/namely/job_tier_spec.rb +0 -5
- data/spec/namely/profile_spec.rb +0 -25
- data/spec/namely/report_spec.rb +0 -8
- data/spec/shared_examples/a_model_with_a_create_action.rb +0 -24
- data/spec/shared_examples/a_model_with_a_show_action.rb +0 -38
- data/spec/shared_examples/a_model_with_an_index_action.rb +0 -17
@@ -25,9 +25,9 @@ http_interactions:
|
|
25
25
|
Content-Type:
|
26
26
|
- application/json; charset=utf-8
|
27
27
|
Date:
|
28
|
-
- Tue,
|
28
|
+
- Tue, 11 Nov 2014 16:10:17 GMT
|
29
29
|
Server:
|
30
|
-
- nginx
|
30
|
+
- nginx
|
31
31
|
Status:
|
32
32
|
- 404 Not Found
|
33
33
|
Strict-Transport-Security:
|
@@ -37,18 +37,18 @@ http_interactions:
|
|
37
37
|
X-Rack-Cache:
|
38
38
|
- miss
|
39
39
|
X-Request-Id:
|
40
|
-
-
|
40
|
+
- 59152f7c-363e-4b32-af5a-afa1b6f92fa2
|
41
41
|
X-Runtime:
|
42
|
-
- '0.
|
42
|
+
- '0.043690'
|
43
43
|
Content-Length:
|
44
|
-
- '
|
44
|
+
- '62'
|
45
45
|
Connection:
|
46
46
|
- keep-alive
|
47
47
|
body:
|
48
48
|
encoding: ASCII-8BIT
|
49
49
|
string: !binary |-
|
50
50
|
H4sIAAAAAAAAA6tWyk0tLk5MT1WyUgpKLcgvKlHIyy9RSMsvzUtR0lFKLSrK
|
51
|
-
|
51
|
+
LypWsoqOrQUAFxI/qSoAAAA=
|
52
52
|
http_version:
|
53
|
-
recorded_at: Tue,
|
53
|
+
recorded_at: Tue, 11 Nov 2014 16:10:17 GMT
|
54
54
|
recorded_with: VCR 2.9.3
|
@@ -27,13 +27,13 @@ http_interactions:
|
|
27
27
|
Content-Type:
|
28
28
|
- application/json
|
29
29
|
Date:
|
30
|
-
-
|
30
|
+
- Wed, 05 Nov 2014 19:34:30 GMT
|
31
31
|
Etag:
|
32
|
-
- '"
|
32
|
+
- '"d5351a93b070c18ad88f3eb2c60ec3cc"'
|
33
33
|
Pragma:
|
34
34
|
- no-cache
|
35
35
|
Server:
|
36
|
-
- nginx
|
36
|
+
- nginx/1.6.2
|
37
37
|
Status:
|
38
38
|
- 200 OK
|
39
39
|
Strict-Transport-Security:
|
@@ -42,9 +42,9 @@ http_interactions:
|
|
42
42
|
X-Rack-Cache:
|
43
43
|
- invalidate, pass
|
44
44
|
X-Request-Id:
|
45
|
-
-
|
45
|
+
- 22bf7278-55c0-44bc-81b5-daac511edc48
|
46
46
|
X-Runtime:
|
47
|
-
- '0.
|
47
|
+
- '0.065517'
|
48
48
|
Content-Length:
|
49
49
|
- '141'
|
50
50
|
Connection:
|
@@ -53,5 +53,5 @@ http_interactions:
|
|
53
53
|
encoding: UTF-8
|
54
54
|
string: '{"access_token":"<%= access_token %>","refresh_token":"<%= refresh_token %>","token_type":"bearer","expires_in":899}'
|
55
55
|
http_version:
|
56
|
-
recorded_at:
|
56
|
+
recorded_at: Wed, 05 Nov 2014 19:34:30 GMT
|
57
57
|
recorded_with: VCR 2.9.3
|
@@ -79,6 +79,24 @@ describe Namely::Authenticator do
|
|
79
79
|
expect(parsed_uri.scheme).to eq "http"
|
80
80
|
expect(parsed_uri.host).to eq "testing.example.com"
|
81
81
|
end
|
82
|
+
|
83
|
+
it "accepts a state parameter" do
|
84
|
+
authenticator = described_class.new(
|
85
|
+
client_id: "MY_CLIENT_ID",
|
86
|
+
client_secret: "MY_CLIENT_SECRET",
|
87
|
+
)
|
88
|
+
|
89
|
+
state = "this-is-a-piece-of-state"
|
90
|
+
|
91
|
+
authorization_code_url = authenticator.authorization_code_url(
|
92
|
+
subdomain: "ellingsonmineral",
|
93
|
+
state: state,
|
94
|
+
)
|
95
|
+
|
96
|
+
parsed_uri = URI(authorization_code_url)
|
97
|
+
parsed_query = CGI.parse(parsed_uri.query)
|
98
|
+
expect(parsed_query["state"]).to eq [state]
|
99
|
+
end
|
82
100
|
end
|
83
101
|
|
84
102
|
describe "#retrieve_tokens" do
|
@@ -140,4 +158,22 @@ describe Namely::Authenticator do
|
|
140
158
|
end
|
141
159
|
end
|
142
160
|
end
|
161
|
+
|
162
|
+
describe "#current_user" do
|
163
|
+
it "returns the profile of the current user" do
|
164
|
+
VCR.use_cassette("current_user") do
|
165
|
+
authenticator = described_class.new(
|
166
|
+
client_id: "MY_CLIENT_ID",
|
167
|
+
client_secret: "MY_CLIENT_SECRET",
|
168
|
+
)
|
169
|
+
|
170
|
+
profile = authenticator.current_user(
|
171
|
+
access_token: ENV.fetch("TEST_ACCESS_TOKEN"),
|
172
|
+
subdomain: ENV.fetch("TEST_SUBDOMAIN"),
|
173
|
+
)
|
174
|
+
|
175
|
+
expect(profile.id).to eq "459748d5-608c-4dce-bca9-49a066d7f3d0"
|
176
|
+
end
|
177
|
+
end
|
178
|
+
end
|
143
179
|
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe Namely::Connection do
|
4
|
+
describe "#initialize" do
|
5
|
+
context "when no provided an access token or subdomain" do
|
6
|
+
it "raises an ArgumentError" do
|
7
|
+
expect { Namely::Connection.new }.to raise_error ArgumentError
|
8
|
+
expect { Namely::Connection.new(access_token: "token") }.
|
9
|
+
to raise_error ArgumentError
|
10
|
+
expect { Namely::Connection.new(subdomain: "subdomain") }.
|
11
|
+
to raise_error ArgumentError
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,94 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe "integration tests" do
|
4
|
+
describe "country collections" do
|
5
|
+
subject { conn.countries }
|
6
|
+
|
7
|
+
it_behaves_like(
|
8
|
+
"a resource with an index action",
|
9
|
+
[:id, :name, :subdivision_type]
|
10
|
+
)
|
11
|
+
|
12
|
+
it_behaves_like(
|
13
|
+
"a resource with a show action",
|
14
|
+
id: "US",
|
15
|
+
name: "United States",
|
16
|
+
subdivision_type: "State"
|
17
|
+
)
|
18
|
+
end
|
19
|
+
|
20
|
+
describe "currency type collections" do
|
21
|
+
subject { conn.currency_types }
|
22
|
+
|
23
|
+
it_behaves_like "a resource with an index action"
|
24
|
+
end
|
25
|
+
|
26
|
+
describe "event collections" do
|
27
|
+
subject { conn.events }
|
28
|
+
|
29
|
+
it_behaves_like "a resource with an index action", [:type]
|
30
|
+
|
31
|
+
it_behaves_like(
|
32
|
+
"a resource with a show action",
|
33
|
+
id: "e5573698-3934-4abf-99cf-577b526d4789",
|
34
|
+
type: "recent_arrival",
|
35
|
+
)
|
36
|
+
end
|
37
|
+
|
38
|
+
describe "field collections" do
|
39
|
+
subject { conn.fields }
|
40
|
+
|
41
|
+
it_behaves_like "a resource with an index action"
|
42
|
+
end
|
43
|
+
|
44
|
+
describe "job tier collections" do
|
45
|
+
subject { conn.job_tiers }
|
46
|
+
|
47
|
+
it_behaves_like "a resource with an index action", [:title]
|
48
|
+
end
|
49
|
+
|
50
|
+
describe "profile collections" do
|
51
|
+
subject { conn.profiles }
|
52
|
+
|
53
|
+
it_behaves_like(
|
54
|
+
"a resource with an index action",
|
55
|
+
[:first_name, :last_name]
|
56
|
+
)
|
57
|
+
|
58
|
+
it_behaves_like(
|
59
|
+
"a resource with a show action",
|
60
|
+
id: "20332458-c1fe-412f-bcb8-01622f04a35d",
|
61
|
+
first_name: "Leighton",
|
62
|
+
last_name: "Meester"
|
63
|
+
)
|
64
|
+
|
65
|
+
it_behaves_like(
|
66
|
+
"a resource with a create action",
|
67
|
+
first_name: "Beardsly",
|
68
|
+
last_name: "McDog",
|
69
|
+
email: "beardsly-#{Time.now.utc.to_f}@namely.com"
|
70
|
+
)
|
71
|
+
|
72
|
+
it_behaves_like(
|
73
|
+
"a resource with an update action",
|
74
|
+
"20332458-c1fe-412f-bcb8-01622f04a35d",
|
75
|
+
middle_name: "Beardsly"
|
76
|
+
)
|
77
|
+
end
|
78
|
+
|
79
|
+
describe "report collections" do
|
80
|
+
subject { conn.reports }
|
81
|
+
|
82
|
+
it_behaves_like(
|
83
|
+
"a resource with a show action",
|
84
|
+
id: "bbf089f6-90c5-473c-8928-058014a462c9"
|
85
|
+
)
|
86
|
+
end
|
87
|
+
|
88
|
+
def conn
|
89
|
+
Namely::Connection.new(
|
90
|
+
access_token: ENV.fetch("TEST_ACCESS_TOKEN"),
|
91
|
+
subdomain: ENV.fetch("TEST_SUBDOMAIN"),
|
92
|
+
)
|
93
|
+
end
|
94
|
+
end
|
@@ -1,12 +1,20 @@
|
|
1
1
|
require "spec_helper"
|
2
2
|
|
3
3
|
describe Namely::ResourceGateway do
|
4
|
+
def access_token
|
5
|
+
ENV.fetch("TEST_ACCESS_TOKEN")
|
6
|
+
end
|
7
|
+
|
8
|
+
def subdomain
|
9
|
+
ENV.fetch("TEST_SUBDOMAIN")
|
10
|
+
end
|
11
|
+
|
4
12
|
def gateway
|
5
13
|
@gateway ||= Namely::ResourceGateway.new(
|
6
|
-
access_token:
|
14
|
+
access_token: access_token,
|
7
15
|
endpoint: "widgets",
|
8
16
|
resource_name: "widgets",
|
9
|
-
subdomain:
|
17
|
+
subdomain: subdomain,
|
10
18
|
)
|
11
19
|
end
|
12
20
|
|
@@ -22,10 +30,10 @@ describe Namely::ResourceGateway do
|
|
22
30
|
it "returns the parsed JSON representation of #index" do
|
23
31
|
stub_request(
|
24
32
|
:get,
|
25
|
-
"https://#{
|
33
|
+
"https://#{subdomain}.namely.com/api/v1/widgets"
|
26
34
|
).with(
|
27
35
|
query: {
|
28
|
-
access_token:
|
36
|
+
access_token: access_token,
|
29
37
|
limit: :all
|
30
38
|
}
|
31
39
|
).to_return(
|
@@ -41,10 +49,10 @@ describe Namely::ResourceGateway do
|
|
41
49
|
it "returns the parsed JSON representation of #show" do
|
42
50
|
stub_request(
|
43
51
|
:get,
|
44
|
-
"https://#{
|
52
|
+
"https://#{subdomain}.namely.com/api/v1/widgets/#{valid_id}"
|
45
53
|
).with(
|
46
54
|
query: {
|
47
|
-
access_token:
|
55
|
+
access_token: access_token
|
48
56
|
}
|
49
57
|
).to_return(
|
50
58
|
body: "{\"widgets\": [{\"name\": \"wilbur\", \"favorite_color\": \"chartreuse\"}]}",
|
@@ -62,10 +70,10 @@ describe Namely::ResourceGateway do
|
|
62
70
|
it "returns an empty response if it succeeds" do
|
63
71
|
stub_request(
|
64
72
|
:head,
|
65
|
-
"https://#{
|
73
|
+
"https://#{subdomain}.namely.com/api/v1/widgets/#{valid_id}"
|
66
74
|
).with(
|
67
75
|
query: {
|
68
|
-
access_token:
|
76
|
+
access_token: access_token
|
69
77
|
}
|
70
78
|
).to_return(
|
71
79
|
body: "",
|
@@ -78,10 +86,10 @@ describe Namely::ResourceGateway do
|
|
78
86
|
it "raises a RestClient::ResourceNotFound error if it fails" do
|
79
87
|
stub_request(
|
80
88
|
:head,
|
81
|
-
"https://#{
|
89
|
+
"https://#{subdomain}.namely.com/api/v1/widgets/#{invalid_id}"
|
82
90
|
).with(
|
83
91
|
query: {
|
84
|
-
access_token:
|
92
|
+
access_token: access_token
|
85
93
|
}
|
86
94
|
).to_return(
|
87
95
|
status: 404
|
@@ -0,0 +1,24 @@
|
|
1
|
+
shared_examples "a resource with a create action" do |model_attributes|
|
2
|
+
def invalid_attributes
|
3
|
+
{}
|
4
|
+
end
|
5
|
+
|
6
|
+
describe "#create" do
|
7
|
+
it "creates a model based on a hash of attributes" do
|
8
|
+
model = nil
|
9
|
+
|
10
|
+
VCR.use_cassette("#{subject.endpoint}_create") do
|
11
|
+
model = subject.create!(model_attributes)
|
12
|
+
end
|
13
|
+
|
14
|
+
expect(model).to respond_to :id
|
15
|
+
expect(model.id).not_to be_empty
|
16
|
+
end
|
17
|
+
|
18
|
+
it "raises a FailedRequestError when the create action fails" do
|
19
|
+
VCR.use_cassette("#{subject.endpoint}_create_failed") do
|
20
|
+
expect { subject.create!(invalid_attributes) }.to raise_error Namely::FailedRequestError
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
shared_examples "a resource with a show action" do |model_attributes|
|
2
|
+
def invalid_id
|
3
|
+
"this-is-almost-certainly-not-the-id-of-any-model"
|
4
|
+
end
|
5
|
+
|
6
|
+
describe "#find" do
|
7
|
+
it "finds a model by its unique id" do
|
8
|
+
VCR.use_cassette("#{subject.endpoint}_show") do
|
9
|
+
object = subject.find(model_attributes[:id])
|
10
|
+
|
11
|
+
expect(object).to be_a Namely::Model
|
12
|
+
model_attributes.each do |method, value|
|
13
|
+
expect(object.public_send(method)).to eq value
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
it "raises an error if that model can't be found" do
|
19
|
+
VCR.use_cassette("#{subject.endpoint}_show_missing") do
|
20
|
+
expect { subject.find(invalid_id) }.to raise_error Namely::NoSuchModelError
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
describe "#exists?" do
|
26
|
+
it "returns true if a model exists" do
|
27
|
+
VCR.use_cassette("#{subject.endpoint}_head") do
|
28
|
+
expect(subject.exists?(model_attributes[:id])).to eq true
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
it "returns false if a model doesn't exist" do
|
33
|
+
VCR.use_cassette("#{subject.endpoint}_head_missing") do
|
34
|
+
expect(subject.exists?(invalid_id)).to eq false
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
shared_examples "a resource with an index action" do |instance_methods = []|
|
2
|
+
it "returns every model" do
|
3
|
+
VCR.use_cassette("#{subject.endpoint}_index") do
|
4
|
+
objects = subject.all
|
5
|
+
|
6
|
+
expect(objects).not_to be_empty
|
7
|
+
objects.each do |object|
|
8
|
+
expect(object).to be_a Namely::Model
|
9
|
+
instance_methods.each do |instance_method|
|
10
|
+
expect(object).to respond_to instance_method
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
data/spec/shared_examples/{a_model_with_an_update_action.rb → a_resource_with_an_update_action.rb}
RENAMED
@@ -1,25 +1,26 @@
|
|
1
|
-
shared_examples_for "a
|
1
|
+
shared_examples_for "a resource with an update action" do |valid_id, changes|
|
2
2
|
describe "#update" do
|
3
3
|
it "updates an existing object" do
|
4
4
|
model = nil
|
5
|
-
original_values = nil
|
6
5
|
|
7
|
-
VCR.use_cassette("#{
|
8
|
-
model =
|
6
|
+
VCR.use_cassette("#{subject.endpoint}_show") do
|
7
|
+
model = subject.find(valid_id)
|
9
8
|
end
|
10
9
|
|
11
10
|
changes.each do |attribute, value|
|
12
11
|
expect(model[attribute]).not_to eq value
|
13
12
|
end
|
14
13
|
|
15
|
-
original_values = model.to_h.select
|
14
|
+
original_values = model.to_h.select do |attribute, _|
|
15
|
+
changes.keys.include?(attribute)
|
16
|
+
end
|
16
17
|
|
17
|
-
VCR.use_cassette("#{
|
18
|
+
VCR.use_cassette("#{subject.endpoint}_update") do
|
18
19
|
model.update(changes)
|
19
20
|
end
|
20
21
|
|
21
|
-
VCR.use_cassette("#{
|
22
|
-
model =
|
22
|
+
VCR.use_cassette("#{subject.endpoint}_show_updated") do
|
23
|
+
model = subject.find(valid_id)
|
23
24
|
end
|
24
25
|
changes.each do |attribute, value|
|
25
26
|
expect(model[attribute]).to eq value
|
@@ -30,7 +31,7 @@ shared_examples_for "a model with an update action" do |valid_id, changes|
|
|
30
31
|
end
|
31
32
|
|
32
33
|
def revert_changes(model, original_values)
|
33
|
-
VCR.use_cassette("#{
|
34
|
+
VCR.use_cassette("#{subject.endpoint}_update_revert") do
|
34
35
|
model.update(original_values)
|
35
36
|
end
|
36
37
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -30,20 +30,3 @@ VCR.configure do |config|
|
|
30
30
|
end
|
31
31
|
end
|
32
32
|
end
|
33
|
-
|
34
|
-
def classname
|
35
|
-
described_class.name.split("::").last.downcase
|
36
|
-
end
|
37
|
-
|
38
|
-
def set_configuration!
|
39
|
-
Namely.configure do |config|
|
40
|
-
config.access_token = ENV.fetch("TEST_ACCESS_TOKEN")
|
41
|
-
config.subdomain = ENV.fetch("TEST_SUBDOMAIN")
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
def unset_configuration!
|
46
|
-
Namely.configuration = nil
|
47
|
-
end
|
48
|
-
|
49
|
-
set_configuration!
|