diff --git a/bin/contracts-generate b/bin/contracts-generate
index c6856596628..5d71d54bd2f 100755
--- a/bin/contracts-generate
+++ b/bin/contracts-generate
@@ -5,11 +5,10 @@ set -e
if [ -f ../config/consul.yml ]; then # canvas is running in docker
docker-compose run --rm --no-deps \
-e RAILS_ENV=test \
- -e RUN_API_CONTRACT_TESTS=1 \
- web bundle exec rspec spec/contracts/service_providers \
+ web bundle exec rspec pact/spec \
--tag pact --format doc
else
- RAILS_ENV=test RUN_API_CONTRACT_TESTS=1 \
- bundle exec rspec spec/contracts/service_providers \
+ RAILS_ENV=test \
+ bundle exec rspec pact/spec \
--tag pact --format doc
fi
diff --git a/spec/contracts/pact_config.rb b/pact/pact_config.rb
similarity index 100%
rename from spec/contracts/pact_config.rb
rename to pact/pact_config.rb
diff --git a/spec/contracts/service_providers/pact_helper.rb b/pact/pact_helper.rb
similarity index 68%
rename from spec/contracts/service_providers/pact_helper.rb
rename to pact/pact_helper.rb
index 7f3c20c119c..74e8bfaea09 100644
--- a/spec/contracts/service_providers/pact_helper.rb
+++ b/pact/pact_helper.rb
@@ -16,7 +16,7 @@
# with this program. If not, see .
require 'pact/consumer/rspec'
-require_relative '../pact_config'
+require_relative 'pact_config'
# see https://github.com/realestate-com-au/pact/blob/master/documentation/configuration.md
Pact.configure do |config|
@@ -27,15 +27,11 @@ Pact.configure do |config|
config.pactfile_write_order = :chronological
end
-# Only load this code block when running API contract tests, otherwise the Pact
-# mock server will cause the canvas specs to fail.
-if ENV.fetch('RUN_API_CONTRACT_TESTS', '0') == '1'
- Pact.service_consumer PactConfig::Consumers::GENERIC_CONSUMER do
- has_pact_with PactConfig::Providers::CANVAS_LMS_API do
- mock_service :canvas_lms_api do
- port PactConfig.mock_provider_service_port
- pact_specification_version '2.0.0'
- end
+Pact.service_consumer PactConfig::Consumers::GENERIC_CONSUMER do
+ has_pact_with PactConfig::Providers::CANVAS_LMS_API do
+ mock_service :canvas_lms_api do
+ port PactConfig.mock_provider_service_port
+ pact_specification_version '2.0.0'
end
end
end
diff --git a/spec/contracts/service_providers/canvas_lms/README.md b/pact/spec/README.md
similarity index 100%
rename from spec/contracts/service_providers/canvas_lms/README.md
rename to pact/spec/README.md
diff --git a/spec/contracts/service_providers/canvas_lms/assignments_spec.rb b/pact/spec/assignments_spec.rb
similarity index 100%
rename from spec/contracts/service_providers/canvas_lms/assignments_spec.rb
rename to pact/spec/assignments_spec.rb
diff --git a/spec/contracts/service_providers/canvas_lms/courses_spec.rb b/pact/spec/courses_spec.rb
similarity index 100%
rename from spec/contracts/service_providers/canvas_lms/courses_spec.rb
rename to pact/spec/courses_spec.rb
diff --git a/spec/contracts/service_providers/canvas_lms/helper.rb b/pact/spec/helper.rb
similarity index 100%
rename from spec/contracts/service_providers/canvas_lms/helper.rb
rename to pact/spec/helper.rb
diff --git a/spec/contracts/service_providers/canvas_lms/helper/api_client/assignments.rb b/pact/spec/helper/api_client/assignments.rb
similarity index 96%
rename from spec/contracts/service_providers/canvas_lms/helper/api_client/assignments.rb
rename to pact/spec/helper/api_client/assignments.rb
index c3d44ad3b0c..78698aee5c9 100644
--- a/spec/contracts/service_providers/canvas_lms/helper/api_client/assignments.rb
+++ b/pact/spec/helper/api_client/assignments.rb
@@ -17,7 +17,7 @@
require 'httparty'
require 'json'
-require_relative '../../../../pact_config'
+require_relative '../../../pact_config'
module Helper
module ApiClient
diff --git a/spec/contracts/service_providers/canvas_lms/helper/api_client/courses.rb b/pact/spec/helper/api_client/courses.rb
similarity index 96%
rename from spec/contracts/service_providers/canvas_lms/helper/api_client/courses.rb
rename to pact/spec/helper/api_client/courses.rb
index 647b2796d61..c73c35501fd 100644
--- a/spec/contracts/service_providers/canvas_lms/helper/api_client/courses.rb
+++ b/pact/spec/helper/api_client/courses.rb
@@ -17,7 +17,7 @@
require 'httparty'
require 'json'
-require_relative '../../../../pact_config'
+require_relative '../../../pact_config'
module Helper
module ApiClient
diff --git a/spec/contracts/service_consumers/api/pact_helper.rb b/spec/contracts/service_consumers/api/pact_helper.rb
index 5e8a33b7da8..d477fe0ba3c 100644
--- a/spec/contracts/service_consumers/api/pact_helper.rb
+++ b/spec/contracts/service_consumers/api/pact_helper.rb
@@ -18,7 +18,7 @@
ENV["RAILS_ENV"] = ENV["RACK_ENV"]= "test"
require 'pact/provider/rspec'
-require_relative '../../pact_config'
+require_relative '../../../../pact/pact_config'
require_relative '../../../spec_helper'
require_relative 'provider_states_for_consumer'
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 c7a7dd62646..8b40faf1ebc 100644
--- a/spec/contracts/service_consumers/api/provider_states_for_consumer.rb
+++ b/spec/contracts/service_consumers/api/provider_states_for_consumer.rb
@@ -15,7 +15,7 @@
# You should have received a copy of the GNU Affero General Public License along
# with this program. If not, see .
-require_relative '../../pact_config'
+require_relative '../../../../pact/pact_config'
require_relative 'pact_setup'
PactConfig::Consumers::ALL.each do |consumer|
diff --git a/spec/contracts/service_consumers/live_events/live_events_pact_helper.rb b/spec/contracts/service_consumers/live_events/live_events_pact_helper.rb
index df0d15a9df8..e7d77bb2294 100644
--- a/spec/contracts/service_consumers/live_events/live_events_pact_helper.rb
+++ b/spec/contracts/service_consumers/live_events/live_events_pact_helper.rb
@@ -17,7 +17,7 @@
#
require 'pact/messages'
-require_relative '../../pact_config'
+require_relative '../../../../pact/pact_config'
require_relative '../../../spec_helper'
Pact::Messages.pact_broker_url = PactConfig.broker_uri
diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb
index 268a2bde168..0368d8cdeb9 100644
--- a/spec/spec_helper.rb
+++ b/spec/spec_helper.rb
@@ -320,7 +320,6 @@ RSpec.configure do |config|
# The Pact specs have prerequisite setup steps so we exclude them by default
config.filter_run_excluding :pact_live_events if ENV.fetch('RUN_LIVE_EVENTS_CONTRACT_TESTS', '0') == '0'
- config.filter_run_excluding :pact if ENV.fetch('RUN_API_CONTRACT_TESTS', '0') == '0'
config.include Helpers
config.include Factories