From 28f2d64b1d69bcfe8420a4fe27fb97cfee423a9c Mon Sep 17 00:00:00 2001 From: Luke Kingsley Date: Tue, 3 Jul 2018 12:05:18 -0600 Subject: [PATCH] spec: refactor assignment specs closes QA-528 Test Plan: 1. Pass Jenkins Change-Id: I0d084b9563e603616ebcd0fa2d551232a9f380c3 Reviewed-on: https://gerrit.instructure.com/156082 Tested-by: Jenkins Reviewed-by: Deepeeca Soundarrajan Product-Review: Luke Kingsley QA-Review: Luke Kingsley --- pact/spec/assignments_spec.rb | 69 +++++++++---------- .../api/provider_states_for_consumer.rb | 6 +- .../assignments_provider_states.rb | 10 +-- 3 files changed, 41 insertions(+), 44 deletions(-) diff --git a/pact/spec/assignments_spec.rb b/pact/spec/assignments_spec.rb index 4832a54cef2..eac82bc47a7 100644 --- a/pact/spec/assignments_spec.rb +++ b/pact/spec/assignments_spec.rb @@ -21,42 +21,40 @@ require_relative '../pact_helper' describe 'Assignments', :pact do subject(:assignments_api) { Helper::ApiClient::Assignments.new } - context 'List Assignments' do - it 'should return JSON body' do - canvas_lms_api.given('a student in a course with an assignment'). - upon_receiving('List Assignments'). + it 'List Assignments' do + canvas_lms_api.given('a student in a course with an assignment'). + upon_receiving('List Assignments'). with( method: :get, headers: { 'Authorization': 'Bearer some_token', - 'Auth-User': 'User_Student', + 'Auth-User': 'Student1', 'Connection': 'close', 'Host': PactConfig.mock_provider_service_base_uri, 'Version': 'HTTP/1.1' }, - 'path' => '/api/v1/users/2/courses/1/assignments', + 'path' => '/api/v1/users/5/courses/1/assignments', query: '' ). will_respond_with( - status: 200, - body: Pact.each_like('id': 1, 'name': 'Assignment1') - ) - assignments_api.authenticate_as_user('User_Student') - response = assignments_api.list_assignments(1, 2) - expect(response[0]['id']).to eq 1 - expect(response[0]['name']).to eq 'Assignment1' - end + status: 200, + body: Pact.each_like('id': 1, 'name': 'Assignment1') + ) + assignments_api.authenticate_as_user('Student1') + response = assignments_api.list_assignments(1, 5) + expect(response[0]['id']).to eq 1 + expect(response[0]['name']).to eq 'Assignment1' end - context 'Post Assignments' do - it 'should return JSON body' do - canvas_lms_api.given('a teacher in a course'). - upon_receiving('Post Assignments'). + + it 'Post Assignments' do + canvas_lms_api.given('a teacher in a course'). + upon_receiving('Post Assignments'). with( method: :post, headers: { 'Authorization': 'Bearer some_token', - 'Auth-User': 'User_Teacher', + 'Auth-User': 'Teacher1', 'Connection': 'close', 'Host': PactConfig.mock_provider_service_base_uri, 'Version': 'HTTP/1.1', @@ -64,22 +62,21 @@ describe 'Assignments', :pact do }, 'path' => '/api/v1/courses/1/assignments', 'body' => - { - 'assignment': - { - 'name': 'New Assignment' - } - }, - query: '' - ). - will_respond_with( - status: 201, - body: Pact.like('id': 1, 'name': 'New Assignment') - ) - assignments_api.authenticate_as_user('User_Teacher') - response = assignments_api.post_assignments(1, 'New Assignment') - expect(response['id']).to eq 1 - expect(response['name']).to eq 'New Assignment' - end + { + 'assignment': + { + 'name': 'New Assignment' + } + }, + query: '' + ). + will_respond_with( + status: 201, + body: Pact.like('id': 1, 'name': 'New Assignment') + ) + assignments_api.authenticate_as_user('Teacher1') + response = assignments_api.post_assignments(1, 'New Assignment') + expect(response['id']).to eq 1 + expect(response['name']).to eq 'New Assignment' end end diff --git a/spec/contracts/service_consumers/api/provider_states_for_consumer.rb b/spec/contracts/service_consumers/api/provider_states_for_consumer.rb index 38f6494921e..9b932f7bb7f 100644 --- a/spec/contracts/service_consumers/api/provider_states_for_consumer.rb +++ b/spec/contracts/service_consumers/api/provider_states_for_consumer.rb @@ -20,9 +20,9 @@ require 'spec/factories/course_factory' require 'spec/factories/user_factory' PactConfig::Consumers::ALL.each do |consumer| - if consumer == 'Generic Consumer' - next - end + # if consumer == 'Generic Consumer' + # next + # end Pact.provider_states_for consumer do set_up do diff --git a/spec/contracts/service_consumers/api/provider_states_for_consumer/assignments_provider_states.rb b/spec/contracts/service_consumers/api/provider_states_for_consumer/assignments_provider_states.rb index 631f4c1d92f..5b1baec7df9 100644 --- a/spec/contracts/service_consumers/api/provider_states_for_consumer/assignments_provider_states.rb +++ b/spec/contracts/service_consumers/api/provider_states_for_consumer/assignments_provider_states.rb @@ -21,13 +21,13 @@ PactConfig::Consumers::ALL.each do |consumer| Pact.provider_states_for consumer do - # Creates a course with a student enrolled and creates an assignment in the course. - # Possible API endpoints: get, put and delete - # Used by the spec: 'List Assignments' + # Student ID: 5 || Student Name: Student1 + # Course ID: 1 + # Assignment ID: 1 provider_state 'a student in a course with an assignment' do set_up do - course_with_student(active_all: true, name: 'User_Student') - Assignment.create!(context: @course, title: "Assignment1") + course = Pact::Canvas:base_state.course + Assignment.create!(context: course, title: "Assignment1") end end end