quiz_api_client 4.3.0 → 4.5.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (35) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +0 -48
  3. data/Rakefile +0 -29
  4. data/lib/quiz_api_client/services/courses_service.rb +37 -0
  5. data/lib/quiz_api_client/version.rb +1 -1
  6. data/lib/quiz_api_client.rb +5 -0
  7. data/spec/quiz_api_client_spec.rb +7 -0
  8. data/spec/services/courses_service_spec.rb +103 -0
  9. data/spec/spec_helper.rb +1 -25
  10. metadata +11 -86
  11. data/spec/contracts/interaction_types_service_spec.rb +0 -22
  12. data/spec/contracts/item_analyses_service_spec.rb +0 -59
  13. data/spec/contracts/items_service_spec.rb +0 -59
  14. data/spec/contracts/qti_imports_service_spec.rb +0 -34
  15. data/spec/contracts/quiz_clone_job_service_spec.rb +0 -20
  16. data/spec/contracts/quiz_clone_jobs_service_spec.rb +0 -21
  17. data/spec/contracts/quiz_entries_service_spec.rb +0 -125
  18. data/spec/contracts/quiz_service_spec.rb +0 -68
  19. data/spec/contracts/quiz_session_events_service_spec.rb +0 -30
  20. data/spec/contracts/quiz_session_result_service_spec.rb +0 -42
  21. data/spec/contracts/quiz_session_service_spec.rb +0 -56
  22. data/spec/contracts/quiz_sessions_service_spec.rb +0 -28
  23. data/spec/contracts/quiz_sync_job_service_spec.rb +0 -21
  24. data/spec/contracts/quiz_sync_jobs_service_spec.rb +0 -21
  25. data/spec/contracts/quizzes_service_spec.rb +0 -80
  26. data/spec/contracts/session_item_results_service_spec.rb +0 -60
  27. data/spec/contracts/session_items_service_spec.rb +0 -21
  28. data/spec/contracts/shared_banks_spec.rb +0 -366
  29. data/spec/contracts/shared_examples/http_delete_example.rb +0 -56
  30. data/spec/contracts/shared_examples/http_get_example.rb +0 -139
  31. data/spec/contracts/shared_examples/http_patch_example.rb +0 -60
  32. data/spec/contracts/shared_examples/http_post_example.rb +0 -68
  33. data/spec/contracts/shared_examples/http_put_example.rb +0 -60
  34. data/spec/support/pact_config.rb +0 -64
  35. data/spec/support/pact_helper.rb +0 -19
@@ -1,60 +0,0 @@
1
- shared_examples 'a http put request to quiz_api' do
2
- let(:quizzes_api_path) { raise 'Override in spec' }
3
- let(:consumer_key) { 'consumer key' }
4
- let(:consumer_request_id) { 'consumer request id' }
5
- let(:host) { 'localhost:1234' }
6
- let(:shared_secret) { 'secret' }
7
- let(:scope) { raise 'Override in spec' }
8
- let(:resource_id) { nil }
9
- let(:response_body) { raise 'Override in spec' }
10
- let(:service_name) { raise 'Override in spec' }
11
- let(:status) { 200 }
12
- let(:provider_state) { raise 'Override in spec' }
13
- let(:user) { nil }
14
- let(:params) { raise 'Override in spec' }
15
- let(:body) { raise 'Override in spec' }
16
- let(:request_description) { raise 'Override in spec (must be unique!)' }
17
-
18
- let(:client) do
19
- QuizApiClient::Client.new(
20
- consumer_key: consumer_key,
21
- consumer_request_id: consumer_request_id,
22
- host: host,
23
- shared_secret: shared_secret,
24
- protocol: 'http'
25
- )
26
- end
27
-
28
- context 'updating a resource' do
29
- let(:token) do
30
- client.jwt_service.grant_permission(
31
- exp: token_expiration_one_year,
32
- scope: scope,
33
- uuid: user,
34
- resource_id: resource_id
35
- )
36
- end
37
-
38
- before do
39
- quiz_api
40
- .given(provider_state)
41
- .upon_receiving(request_description)
42
- .with(
43
- method: :put,
44
- path: quizzes_api_path,
45
- headers: headers(token),
46
- body: body
47
- )
48
- .will_respond_with(
49
- status: status,
50
- headers: { 'Content-Type' => 'application/json; charset=utf-8' },
51
- body: response_body
52
- )
53
- end
54
-
55
- it 'verifies the request is valid' do
56
- result = client.send(service_name).update(token: token, params: params)
57
- expect(result).to be_truthy
58
- end
59
- end
60
- end
@@ -1,64 +0,0 @@
1
- module PactConfig
2
- # These constants ensure we use the correct strings and thus help avoid our
3
- # accidentally breaking the contract tests
4
- QUIZ_API_CLIENT_RUBY = 'Quiz API Client Ruby'.freeze
5
-
6
- # Add new API and LiveEvents providers to this Providers module
7
- module Providers
8
- QUIZ_API = 'Quiz API'.freeze
9
- ALL = Providers.constants.map { |c| Providers.const_get(c) }.freeze
10
- end
11
-
12
- class << self
13
- def pact_uri(pact_path:)
14
- URI::HTTP.build(
15
- scheme: protocol,
16
- userinfo: "#{broker_username}:#{broker_password}",
17
- host: broker_host,
18
- path: "/#{pact_path}/#{consumer_tag}"
19
- ).to_s
20
- end
21
-
22
- def broker_uri
23
- URI::HTTP.build(
24
- scheme: protocol,
25
- userinfo: "#{broker_username}:#{broker_password}",
26
- host: broker_host
27
- ).to_s
28
- end
29
-
30
- def broker_host
31
- ENV.fetch('PACT_BROKER_HOST', 'pact-broker.docker')
32
- end
33
-
34
- def consumer_tag
35
- ENV.fetch('PACT_CONSUMER_TAG', 'local')
36
- end
37
-
38
- def consumer_version
39
- version = QuizApiClient::VERSION
40
- sha = ENV['SHA']
41
- version = "#{version}+#{sha}" if sha
42
- version
43
- end
44
-
45
- def broker_password
46
- ENV.fetch('PACT_BROKER_PASSWORD', 'broker')
47
- end
48
-
49
- def broker_username
50
- ENV.fetch('PACT_BROKER_USERNAME', 'pact')
51
- end
52
-
53
- private
54
-
55
- def jenkins_build?
56
- !ENV['JENKINS_URL'].nil?
57
- end
58
-
59
- def protocol
60
- protocol = jenkins_build? ? 'https' : 'http'
61
- ENV.fetch('PACT_BROKER_PROTOCOL', protocol)
62
- end
63
- end
64
- end
@@ -1,19 +0,0 @@
1
- module PactHelper
2
- def token_expiration_one_year
3
- token_expiration_seconds_from_now(seconds: 31_536_000)
4
- end
5
-
6
- def token_expiration_seconds_from_now(seconds:)
7
- Time.now.utc.to_i + seconds
8
- end
9
-
10
- def headers(token)
11
- {
12
- 'Content-Type' => 'application/json',
13
- 'AuthType' => 'Signature',
14
- 'Accept' => 'application/json',
15
- 'Authorization' => token.to_s,
16
- 'HOST' => 'localhost:1234'
17
- }
18
- end
19
- end