Commit Graph

10778 Commits

Author SHA1 Message Date
Tom Byers
07ca407343 Make 'Hide' button identify as a link
It looks like a link so its semantics should
identify it as one.

This can effect users of speech recognition
software, in scenarios where they instruct it to
click an element which looks like one thing but
the software can only identify as something else.
2020-01-09 16:12:36 +00:00
Pea Tyczynska
a2220f6929 Fix exception in track-error js module that broke our re-upload button 2020-01-09 16:08:44 +00:00
Katie Smith
9c62615acb Merge pull request #3248 from alphagov/pytest-5
Upgrade Pytest to version 5.3.2
2020-01-09 14:44:20 +00:00
karlchillmaid
045597403f Update cookies content 2020-01-09 09:54:14 +00:00
Katie Smith
1c23784767 Pytest 5 🎉
Also updates the Pytest command in `run_tests.sh` to remove junit,
which we stopped using.
2020-01-09 09:50:37 +00:00
Katie Smith
0ec086cd24 Use fixtures for templates in a Pytest 5 compatible way 2020-01-09 09:48:16 +00:00
Katie Smith
9e3f21cd39 Stop calling mock_get_notications as if it's a function
By creating a new function in conftest.py, `create_notifications`, which
can be used instead.
2020-01-09 09:48:16 +00:00
Katie Smith
68983a21d2 Use fixtures for callbacks in a Pytest 5 compatible way 2020-01-09 09:48:16 +00:00
Katie Smith
a3978f8a5f Use fixtures that get services in Pytest 5 compatible way 2020-01-09 09:48:16 +00:00
Katie Smith
f93df53ed3 Stop calling more fixtures as functions
This commits stops calling more fixtures as if they were functions in
order to reduce the number of errors with Pytest 5.
2020-01-09 09:48:16 +00:00
Katie Smith
a602ce5937 Stop calling mock_get_no_api_keys and api_keys_mock like functions 2020-01-09 09:48:16 +00:00
Chris Hill-Scott
c270895c7f Merge pull request #3235 from alphagov/job-page-for-expired-jobs
Customise the job page for jobs whose notifications have been purged
2020-01-09 09:46:19 +00:00
karlchillmaid
8dd2dc22f4 Change 'we' to 'Notify'
Makes the meaning a bit clearer
2020-01-09 09:38:26 +00:00
karlchillmaid
458f308f56 Replace negative contraction
Replace negative contraction.

GDS style guide: https://www.gov.uk/guidance/style-guide/a-to-z-of-gov-uk-style#contractions
2020-01-09 09:31:32 +00:00
Tom Byers
7d31431cef Fix test description 2020-01-08 17:48:37 +00:00
Tom Byers
40ac30a96d Add hidden text to cookie banner buttons
Visual users get the context from the proximity to
the h2 but we need to provide this for others.

I've tried using `aria-describedby` to link them
to the h2 but this ends up making the h2 text the
button's description in the accessibility tree. In
Voiceover this means you only get that information
as extra context, announced a while after the
label if the VO cursor stays on the button.

We want all the information in the accessible
label so chose this approach instead.
2020-01-08 17:03:04 +00:00
Tom Byers
d045316454 Change banner content to just cover analytics
Follows discussions with @quis, @yahoopete and
@karlchillmaid.
2020-01-08 17:02:31 +00:00
Tom Byers
f156fe2e95 Hide cookie banner if no-js
Decided in discussions with @quis and @yahoopete
that users without JS available cannot
accept/reject analytics cookies so the banner has
no use.
2020-01-08 10:23:52 +00:00
Chris Hill-Scott
5bf29495ae Merge pull request #3242 from alphagov/fix-incorrect-assertion
Fix incorrect assertion for letter job CSV link
2020-01-08 09:57:26 +00:00
Chris Hill-Scott
82a71c67df Make button more buttony
`role=button` for users of voice control software

`draggable=false` as per https://github.com/alphagov/govuk-frontend/pull/1020
2020-01-08 09:50:50 +00:00
karlchillmaid
91d39b3fdf Merge pull request #3246 from alphagov/update-roadmap
Update roadmap content
2020-01-07 15:38:36 +00:00
karlchillmaid
c889801f4f Update content 2020-01-07 15:32:12 +00:00
karlchillmaid
adededcf21 Update content 2020-01-07 15:18:03 +00:00
karlchillmaid
ee9c36c102 Update roadmap content 2020-01-07 15:03:13 +00:00
Tom Byers
aca999a94c Merge pull request #3245 from alphagov/remove-govuk-template-compatibility-flag
Remove govuk_template compatibility flag
2020-01-07 14:03:40 +00:00
Leo Hemsted
ac9517f8a7 Merge pull request #3244 from alphagov/func-tests-fix
functional tests email reply to flakiness
2020-01-07 13:55:33 +00:00
Tom Byers
d939c19222 Remove govuk_template compatibility flag
We removed govuk_template when we moved to the
GOVUK Frontend template.njk for our base layout.

The flag was originally turned on under the
assumption that the global CSS govuk_template adds
would be present in our cascade. It fixes issues
that CSS causes with the GOVUK Frontend CSS
further down.

This was mostly wrong, as we did remove the
govuk_template code, but our situation is a bit
different because when we removed it, we copied
across some global styles it introduces to prevent
problems with our own CSS.

One of the side-effects of turning on this flag
was that the Transport font was not being applied.

This turns the flag off again, which replaces the
font, and hard-codes in the fix having this flag
would have brought in: a darker colour for link
text when focused.
2020-01-07 12:55:21 +00:00
Leo Hemsted
e5b2d81d22 increase reply to address validation timeout on preview
Celery/SQS underperforms in low-traffic environments. Tasks will sit on
celery queues for several seconds before getting picked up if they're
the only thing on the queue. This is observable in our test environments
like preview and staging, but we've got enough load on production that
this isn't an issue.

When we validate reply to email addresses, we expect a delivery receipt
to have been processed within 45 seconds of the button being pressed. On
preview, we often observe times over that, possibly due to the several
queues involved in sending an email and processing its receipt. So, to
ensure that functional tests can pass (when we don't really care how
fast things are, just that the flow doesn't break), bump this timeout up
to 120 seconds on preview. The functional tests were waiting for 120
seconds for the reply to address to be validated anyway.
2020-01-07 12:03:32 +00:00
Leo Hemsted
91adadfed0 dont reassign os.environ
os.environ is an `environ` object, not a dict. by only interacting with
it through builtin functions we can ensure it remains properly
accessible to third party libraries which might interact with it in
different ways.

See https://github.com/alphagov/notifications-api/commit/d2441466 for
more detail
2020-01-07 12:03:30 +00:00
Tom Byers
39ec952c45 Merge pull request #3243 from alphagov/turn-on-compatibility-mode-for-govuk-frontend
Turn on compatibility mode for GOVUK Frontend
2020-01-07 11:01:24 +00:00
Tom Byers
024812b49a Turn on compatibility mode for GOVUK Frontend
Automatically fixes a load of known issues that
arise when you use GOVUK Frontend at the same time
as GOVUK Frontend Toolkit, GOVUK Template and
GOVUK Elements.
2020-01-07 10:00:08 +00:00
Tom Byers
73c531f70d Improvements based on frontend feedback
Paired with @aliuk2012 on the implementation and
with a view to making the component generic enough
to be used on digital marketplace apps as well.
These changes came from that session.

They include:
- removal of an unused `data-accept-cookies`
  attribute
- removal of `govuk-!-padding-top-4` class and
  moving of associated styles into component CSS
- swapping out the `aria-label` on the parent
  element for an `aria-describedby` linked to the
  h2 to have one thing labelling the banner region
- removal of unused CSS and any already provided
  by the govuk-button class
- inclusion of @import's for styles attached to
  govuk-body and govuk-button classes
2020-01-06 16:52:03 +00:00
Tom Byers
900aa19bd3 Add JS tests for analytics & cookies JS
Includes:
- tests for the analytics interface ported from
  GOVUK Frontend Toolkit
- tests for the cookie banner that appears on all
  pages except the cookies page
- tests for the cookies page JS
- tests for the hasConsentFor function
- adding a deleteCookie helper to remove
  cookies during tests
- polyfill for insertAdjacentText

The last one is because JSDOM doesn't support
insertAdjacentText but our target browsers
do. This polyfill also includes one for
insertAdjacentHTML.
2020-01-06 13:38:34 +00:00
Chris Hill-Scott
1bb0b6b2f1 Fix incorrect assertion for letter job CSV link
The statement `page.select('[download=download]')` was returning an
empty list because the link on the page has an empty `download`
attribute, rather than it being set to the string `download`.

This commit:
- updates the assertion to find the element on the page
- makes the test more specific by checking where the link goes to, not
  just its exists or lack thereof
2020-01-06 12:56:43 +00:00
Tom Byers
b7af288be2 Merge pull request #3241 from alphagov/fix-logo-svg-fallback-image
Send asset path to Header component
2020-01-06 11:56:17 +00:00
Tom Byers
6726ad31b9 Add test for SVG fallback image path
It's the only resource that uses the `asset_path`
template variable in `template.njk` so this checks
that works as expected.

From feedback on the associated pull request:

https://github.com/alphagov/notifications-admin/pull/3241#issuecomment-571102394
2020-01-06 11:40:12 +00:00
Tom Byers
b822914e23 Send asset path to Header component
The SVG fallback image for the GOV.UK logo starts
its path as '/assets/images' by default unless you
send in an alternative root.

This sends in our static asset host root to stop
the image 404'ing on browsers that load it.
2020-01-06 10:55:47 +00:00
Tom Byers
beeb273d6c Fix python tests broken by cookie banner 2020-01-03 17:28:33 +00:00
Tom Byers
61a5948020 Fix typo on privacy page 2020-01-03 17:28:33 +00:00
Tom Byers
ce52746f74 Update cookies page
Includes:
- new content
- added option to turn analytics on/off
- non-js version for the on/off switch
- a banner to confirm user's choice was saved,
  shown when they click the save button
- the cookie banner that appears on all other
  pages removed from this page
2020-01-03 17:28:33 +00:00
Tom Byers
f46dba8948 Move code for deleting old cookies into banner JS
Removes the following cookies:
- seen_cookie_message (flags if banner was already
  shown)
- _gid (Google Analytics cookie)
- _ga (Google Analytics cookie)

These were set by default before so potentially
still around for some users.

The code for this now exists as a static method on
the cookieMessage module and is called when the JS
loads for the first time.
2020-01-03 17:28:33 +00:00
Tom Byers
3a6537f49f Add new cookie banner code.
Copies HTML and Sass from GOV.UK Pubishing
components cookie-banner with changes to content
and functionality to better suit Notify.

Changes are:
- adds a 'reject' button which the GOV.UK
  code doesn't have
- adds Sass from the GOV.UK Frontend button
  component which the GOV.UK version used so
  is included here
- removed click tracking from cookie banner
2020-01-03 17:28:33 +00:00
Tom Byers
df882976e1 Add new analytics code to frontend build 2020-01-03 17:28:33 +00:00
Tom Byers
c3c5faad54 On page load, call analytics based on consent 2020-01-03 17:28:33 +00:00
Tom Byers
8fd9686c3d Add consent tracking to cookie functions
Taken from GOVUK components:

https://github.com/alphagov/govuk_publishing_components/blob/master/app/assets/javascripts/govuk_publishing_components/lib/cookie-functions.js

Also includes:
- make new cookie functions handle notify domains
- addition of hasConsentFor function to allow easy
  checking of consent for categories of cookie
2020-01-03 17:28:33 +00:00
Tom Byers
0954435afb Wrap analytics code in GOVUK interface
Wraps our analytics code in a stripped down
version of GOVUK.Analytics to allow us to plug in
the GOVUK code for consent.
2020-01-03 17:28:33 +00:00
Chris Hill-Scott
d22bf29529 Merge pull request #3239 from alphagov/lazy-load-letter-previews
Lazy load letter previews
2020-01-03 16:21:59 +00:00
Chris Hill-Scott
d21449c235 Lazy load letter previews
Brings in:
- [x] https://github.com/alphagov/notifications-utils/pull/687
2020-01-03 15:58:51 +00:00
Chris Hill-Scott
93d2d47f4e Don’t show blue boxes once notifications have gone
You can click the blue boxes to filter the list of notifications. Once
the notifications have gone there’s nothing to filter, so we should just
show the numbers but without them being clickable.
2020-01-03 15:15:25 +00:00
Chris Hill-Scott
9446b35e3b Add a more accurate missing notifications message
Notifications could be missing because:
- none have been created yet
- they’ve been deleted

This commit adds separate error messages for each case, rather than a
less helpful generic one.
2020-01-03 15:14:37 +00:00