diff --git a/app/main/views/index.py b/app/main/views/index.py index 642876962..bd70df9e6 100644 --- a/app/main/views/index.py +++ b/app/main/views/index.py @@ -100,3 +100,8 @@ def email_template(): @main.route('/documentation') def documentation(): abort(410) + + +@main.route('/integration_testing') +def integration_testing(): + return render_template('views/integration_testing.html') diff --git a/app/templates/admin_template.html b/app/templates/admin_template.html index ab1339870..7b4cfa462 100644 --- a/app/templates/admin_template.html +++ b/app/templates/admin_template.html @@ -111,6 +111,7 @@ ] %}
  • {{ language }} client
  • {% endfor %} +
  • Integration testing
  • diff --git a/app/templates/views/api/documentation.html b/app/templates/views/api/documentation.html index 29eeda48e..f59f58168 100644 --- a/app/templates/views/api/documentation.html +++ b/app/templates/views/api/documentation.html @@ -26,6 +26,7 @@ {{ name }} {% endfor %} +
  • Integration testing
  • {{ page_footer( diff --git a/app/templates/views/integration_testing.html b/app/templates/views/integration_testing.html new file mode 100644 index 000000000..fa6fec5bc --- /dev/null +++ b/app/templates/views/integration_testing.html @@ -0,0 +1,159 @@ +{% from "components/table.html" import mapping_table, row, text_field, edit_field, field %} +{% extends "withoutnav_template.html" %} + +{% block page_title %} + Integration testing - GOV.UK Notify +{% endblock %} + +{% block maincolumn_content %} + +
    +
    +

    Integration testing

    + +

    + There are different types of API keys that let you do functional or performance integration testing. + You don’t need different GOV.UK Notify accounts or access to other GOV.UK Notify environments. +

    + +

    Types of API Keys

    +
    + {% call mapping_table( + caption='Test numbers/address that generate error responses', + field_headings=['Label', 'Value'], + field_headings_visible=False, + caption_visible=False + ) %} + {% call row() %} + {{ text_field('Live') }} + {{ text_field('sends to anyone') }} + {% endcall %} + + {% call row() %} + {{ text_field('Team and whitelist') }} + {{ text_field('limits who you can send to') }} + {% endcall %} + + {% call row() %} + {{ text_field('Test') }} + {{ text_field('pretends to send messages') }} + {% endcall %} + {%endcall%} +
    +

    Live key

    +

    + Once your service is live you are able to create Live keys. You can then use these keys to send messages to anyone. +

    +

    + Messages sent with a live key show up on your dashboard and count against your text message and email allowances. +

    +

    + You should revoke and re-create these keys on a regular basis. You can have more than one active key at a time. To revoke a key click the revoke button on the API Key page. +

    + +

    Team and whitelist key

    +

    + Use a team and whitelist key for end-to-end functional testing. +

    +

    + A team and whitelist key lets you send real messages to members of your team and addresses/numbers that you have added to your whitelist. You will get an error if you use these keys to send messages to anyone else. +

    +

    + Messages sent with a team and whitelist key show up on your dashboard and count against your text message and email allowances. +

    + +

    Test key

    +

    + Use a test key to test the performance of your service and its integration with GOV.UK Notify. +

    +

    + Test keys don’t send real messages but do generates realistic responses. + There’s no restriction on who you can send to. +

    +

    + Messages sent using a test key don’t show up on your dashboard or count against your text message and email allowances. +

    +

    + By default, all messages sent with a test key will result in a delivered status. +

    +

    + If you want to test failure responses with a test key, use the following numbers and addresses: +

    + + {% call mapping_table( + caption='Test numbers/address that generate error responses', + field_headings=['Label', 'Value', 'Action'], + field_headings_visible=False, + caption_visible=False + ) %} + {% call row() %} + {{ text_field('07700900003') }} + {{ text_field('temporary failure') }} + {% endcall %} + {% call row() %} + {{ text_field('07700900002') }} + {{ text_field('permanent failure') }} + {% endcall %} + {% call row() %} + {{ text_field('temp-fail@simulator.notify') }} + {{ text_field('temporary failure') }} + {% endcall %} + {% call row() %} + {{ text_field('perm-fail@simulator.notify') }} + {{ text_field('permanent failure') }} + {% endcall %} + {% call row() %} + {{ text_field('any other valid number or address') }} + {{ text_field('delivered') }} + {% endcall %} + {% endcall %} + +
    +

    + +

    Smoke testing your integration

    +

    + If you need to smoke test your integration with GOV.UK Notify on a regular basis, you should use the smoke test numbers and addresses below. +

    + {% call mapping_table( + caption='Test numbers/address that generate error responses', + field_headings=['Label'], + field_headings_visible=False, + caption_visible=False + ) %} + {% call row() %} + {{ text_field('07700900111') }} + {% endcall %} + {% call row() %} + {{ text_field('07700900222') }} + {% endcall %} + {% call row() %} + {{ text_field('07700900333') }} + {% endcall %} + {% call row() %} + {{ text_field('simulate-delivered@notifications.service.gov.uk') }} + {% endcall %} + {% call row() %} + {{ text_field('simulate-delivered-2@notifications.service.gov.uk') }} + {% endcall %} + + {% call row() %} + {{ text_field('simulate-delivered-3@notifications.service.gov.uk') }} + {% endcall %} + {% endcall %} +
    + +

    +

    + The smoke test numbers and addresses will immediately return a successful response, but won’t send a real message and won’t produce a delivery receipt. + The notification ID is not a real ID, you will not be able to fetch the notification by ID. +

    +

    + You can use the smoke test numbers and addresses with any type of key. + If your smoke tests need to get the status of a message, then use a test key and don’t use these numbers and addresses. +

    + +
    +
    + +{% endblock %} diff --git a/tests/app/main/views/test_index.py b/tests/app/main/views/test_index.py index 604825b57..dd4c867d0 100644 --- a/tests/app/main/views/test_index.py +++ b/tests/app/main/views/test_index.py @@ -18,7 +18,7 @@ def test_logged_in_user_redirects_to_choose_service(app_, @pytest.mark.parametrize('view', [ - 'cookies', 'trial_mode', 'pricing', 'terms', 'delivery_and_failure' + 'cookies', 'trial_mode', 'pricing', 'terms', 'delivery_and_failure', 'integration_testing' ]) def test_static_pages(app_, view): with app_.test_request_context(), app_.test_client() as client: