Module: GovukAbTesting::MinitestHelpers
- Defined in:
- lib/govuk_ab_testing/minitest_helpers.rb
Instance Method Summary collapse
- #acceptance_test_framework ⇒ Object
- #assert_page_not_tracked_in_ab_test(ab_test_name) ⇒ Object
- #assert_response_is_cached_by_variant(ab_test_name) ⇒ Object
- #assert_response_not_modified_for_ab_test(ab_test_name) ⇒ Object
- #setup_ab_variant(ab_test_name, variant, dimension = 300) ⇒ Object
- #with_variant(args) ⇒ Object
Instance Method Details
#acceptance_test_framework ⇒ Object
3 4 5 6 |
# File 'lib/govuk_ab_testing/minitest_helpers.rb', line 3 def acceptance_test_framework @acceptance_test_framework ||= GovukAbTesting.configuration.framework_class.new(self) end |
#assert_page_not_tracked_in_ab_test(ab_test_name) ⇒ Object
79 80 81 82 83 84 85 86 87 88 |
# File 'lib/govuk_ab_testing/minitest_helpers.rb', line 79 def assert_page_not_tracked_in_ab_test(ab_test_name) = acceptance_test_framework.(ab_test_name) assert_equal( 0, .count, "A/B meta tag is being added to a page which should not be modified by the A/B test" ) end |
#assert_response_is_cached_by_variant(ab_test_name) ⇒ Object
59 60 61 62 63 64 65 |
# File 'lib/govuk_ab_testing/minitest_helpers.rb', line 59 def assert_response_is_cached_by_variant(ab_test_name) ab_test = GovukAbTesting::AbTest.new(ab_test_name, dimension: 123) vary_header_value = acceptance_test_framework.vary_header(response) assert_match ab_test.response_header, vary_header_value, "You probably forgot to use `configure_response`" end |
#assert_response_not_modified_for_ab_test(ab_test_name) ⇒ Object
67 68 69 70 71 72 73 74 75 76 77 |
# File 'lib/govuk_ab_testing/minitest_helpers.rb', line 67 def assert_response_not_modified_for_ab_test(ab_test_name) vary_header = acceptance_test_framework.vary_header(response) assert_no_match( /#{ab_test_name}/, vary_header, "`Vary` header is being added to a page which should not be modified by the A/B test" ) assert_page_not_tracked_in_ab_test(ab_test_name) end |
#setup_ab_variant(ab_test_name, variant, dimension = 300) ⇒ Object
53 54 55 56 57 |
# File 'lib/govuk_ab_testing/minitest_helpers.rb', line 53 def setup_ab_variant(ab_test_name, variant, dimension = 300) ab_test = GovukAbTesting::AbTest.new(ab_test_name, dimension: dimension) acceptance_test_framework.set_header(ab_test.request_header, variant) end |
#with_variant(args) ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/govuk_ab_testing/minitest_helpers.rb', line 8 def with_variant(args) ab_test_name, variant = args.first dimension = args[:dimension] ab_test = GovukAbTesting::AbTest.new(ab_test_name.to_s, dimension: dimension) acceptance_test_framework.set_header(ab_test.request_header, variant) requested_variant = ab_test.requested_variant(acceptance_test_framework.request_headers) yield vary_header_value = acceptance_test_framework.vary_header(response) assert_match ab_test.response_header, vary_header_value, "You probably forgot to use `configure_response`" unless args[:assert_meta_tag] == false expected_content = ab_test. + ':' + requested_variant.variant_name = "You probably forgot to add the `analytics_meta_tag` to the views" = acceptance_test_framework.(ab_test_name) assert_equal(1, .count, ) = .first assert_equal( expected_content, .content, "Meta tag's content doesnt match." ) if dimension.nil? assert(.dimension, "No custom dimension number found") else assert_equal( dimension.to_s, .dimension, "The custom dimension found in meta tag doesn't match" ) end end end |