All Scenarios

429

Passed Scenarios

429

Failed Scenarios

0
As a site visitor
I want every section the Horizon Aid template ships to load without errors
So that the site is usable the moment the recipe is installed.

@check @regression @local @development @staging @production @navigation
Scenario Outline:The home page renders for an anonymous visitor
6

Given I am an anonymous user 6s 151ms

When I go to "/home" 5s 722ms

And I wait until the page is loaded 3ms

Then I should see "Education" 5ms

And I should not see "The website encountered an unexpected error" 2ms

And I should not see "Page not found" 2ms

@check @regression @local @development @staging @production @navigation
Scenario Outline:The about page renders for an anonymous visitor
6

Given I am an anonymous user 673ms

When I go to "/about" 6s 78ms

And I wait until the page is loaded 5ms

Then I should see "About" 4ms

And I should not see "The website encountered an unexpected error" 2ms

And I should not see "Page not found" 2ms

@check @regression @local @development @staging @production @navigation
Scenario Outline:The resources page renders for an anonymous visitor
6

Given I am an anonymous user 669ms

When I go to "/resources" 11s 323ms

And I wait until the page is loaded 3ms

Then I should see "Resources" 3ms

And I should not see "The website encountered an unexpected error" 2ms

And I should not see "Page not found" 1ms

@check @regression @local @development @staging @production @navigation
Scenario Outline:The programs page renders for an anonymous visitor
6

Given I am an anonymous user 674ms

When I go to "/programs" 6s 16ms

And I wait until the page is loaded 6ms

Then I should see "Our Programs" 3ms

And I should not see "The website encountered an unexpected error" 2ms

And I should not see "Page not found" 1ms

@check @regression @local @development @staging @production @navigation
Scenario Outline:The events page renders for an anonymous visitor
6

Given I am an anonymous user 674ms

When I go to "/events" 5s 618ms

And I wait until the page is loaded 410ms

Then I should see "Events" 4ms

And I should not see "The website encountered an unexpected error" 2ms

And I should not see "Page not found" 2ms

@check @regression @local @development @staging @production @navigation
Scenario Outline:The countries page renders for an anonymous visitor
6

Given I am an anonymous user 678ms

When I go to "/countries" 5s 727ms

And I wait until the page is loaded 52ms

Then I should see "Countries" 4ms

And I should not see "The website encountered an unexpected error" 2ms

And I should not see "Page not found" 1ms

@check @regression @local @development @staging @production @navigation
Scenario Outline:The donate page renders for an anonymous visitor
6

Given I am an anonymous user 671ms

When I go to "/donate" 5s 782ms

And I wait until the page is loaded 2ms

Then I should see "Donate" 2ms

And I should not see "The website encountered an unexpected error" 1ms

And I should not see "Page not found" 1ms

@check @smoke @fast @local @development @staging @production @navigation
Scenario:The site front page is the Horizon Aid home page
6

Given I am an anonymous user 673ms

When I go to "/" 650ms

And I wait until the page is loaded 3ms

Then I should not see "The website encountered an unexpected error" 2ms

And "header[role='banner']" should be visible 1ms

And "footer" should be visible 1ms

As a site visitor
I want the main navigation and footer to name and reach every section
So that I can move around the site without guessing at URLs.

@check @smoke @fast @local @development @staging @production @navigation
Scenario Outline:The main navigation links to the About section
4

Given I am an anonymous user 673ms

When I go to "/" 647ms

And I wait until the page is loaded 3ms

Then the link "About" with the href "/about" within the element "header[role='banner']" should exist 2ms

@check @smoke @fast @local @development @staging @production @navigation
Scenario Outline:The main navigation links to the Resources section
4

Given I am an anonymous user 673ms

When I go to "/" 647ms

And I wait until the page is loaded 2ms

Then the link "Resources" with the href "/resources" within the element "header[role='banner']" should exist 1ms

@check @smoke @fast @local @development @staging @production @navigation
Scenario Outline:The main navigation links to the Programs section
4

Given I am an anonymous user 670ms

When I go to "/" 646ms

And I wait until the page is loaded 3ms

Then the link "Programs" with the href "/programs" within the element "header[role='banner']" should exist 1ms

@check @smoke @fast @local @development @staging @production @navigation
Scenario Outline:The main navigation links to the Events section
4

Given I am an anonymous user 675ms

When I go to "/" 646ms

And I wait until the page is loaded 2ms

Then the link "Events" with the href "/events" within the element "header[role='banner']" should exist 1ms

@check @smoke @fast @local @development @staging @production @navigation
Scenario Outline:The main navigation links to the Countries section
4

Given I am an anonymous user 670ms

When I go to "/" 649ms

And I wait until the page is loaded 3ms

Then the link "Countries" with the href "/countries" within the element "header[role='banner']" should exist 2ms

@check @smoke @fast @local @development @staging @production @navigation
Scenario Outline:The main navigation links to the Donate section
4

Given I am an anonymous user 671ms

When I go to "/" 646ms

And I wait until the page is loaded 2ms

Then the link "Donate" with the href "/donate" within the element "header[role='banner']" should exist 1ms

@check @smoke @fast @local @development @staging @production @navigation
Scenario:The main navigation is the same on an interior page
6

Given I am an anonymous user 672ms

When I go to "/about" 655ms

And I wait until the page is loaded 2ms

Then the link "Programs" with the href "/programs" within the element "header[role='banner']" should exist 1ms

And the link "Events" with the href "/events" within the element "header[role='banner']" should exist 1ms

And the link "Donate" with the href "/donate" within the element "header[role='banner']" should exist 1ms

@check @regression @fast @local @development @staging @production @navigation
Scenario:The footer links the organization's social profiles
7

Given I am an anonymous user 676ms

When I go to "/" 649ms

And I wait until the page is loaded 2ms

Then the "LinkedIn" link should be visible 5ms

And the "Facebook" link should be visible 2ms

And the "Instagram" link should be visible 2ms

And the element "a" with the attribute "href" and the value "https://x.com/Vardot" should exist 1ms

As a site visitor on a phone
I want the main navigation and the listings to work at a small viewport
So that I can reach every section without a desktop browser.

@check @critical @exploratory @fast @local @development @staging @production @navigation
Scenario:Check the main menu sits behind a navigation toggle on a phone
6

Given I am an anonymous user 675ms

When I set the viewport to the "xs" breakpoint 13ms

And I go to "/" 666ms

And I wait until the page is loaded 2ms

Then "header[role='banner'] button.navbar-toggler" should be visible 1ms

And "header[role='banner'] .navbar-collapse" should not be visible 1ms

@check @critical @exploratory @fast @local @development @staging @production @navigation
Scenario:Verify the navigation toggle opens the main menu on a phone
10

Given I am an anonymous user 670ms

When I set the viewport to the "xs" breakpoint 9ms

And I go to "/" 638ms

And I wait until the page is loaded 2ms

Then "header[role='banner'] .navbar-collapse" should not be visible 1ms

When I click on the element "header[role='banner'] button.navbar-toggler" 1s 71ms

Then "header[role='banner'] .navbar-collapse" should be visible within 5 seconds 1ms

And I should see "Countries" 7ms

And I should see "Programs" 3ms

And I should see "Donate" 2ms

@check @critical @regression @fast @local @development @staging @production @navigation
Scenario:Check the main menu is laid out and needs no toggle on a desktop
7

Given I am an anonymous user 673ms

When I set the viewport to the "xl" breakpoint 8ms

And I go to "/" 730ms

And I wait until the page is loaded 2ms

Then "header[role='banner'] .navbar-collapse" should be visible 1ms

And "header[role='banner'] button.navbar-toggler" should not be visible 1ms

And I should see "Countries" 4ms

@check @exploratory @fast @local @development @navigation
Scenario Outline:Check the Countries listing renders its content on a phone
6

Given I am an anonymous user 669ms

When I set the viewport to the "xs" breakpoint 12ms

And I go to "/countries" 701ms

And I wait until the page is loaded 2ms

Then I should see "Afghanistan" 4ms

And I should not see "The website encountered an unexpected error" 2ms

@check @exploratory @fast @local @development @navigation
Scenario Outline:Check the Programs listing renders its content on a phone
6

Given I am an anonymous user 673ms

When I set the viewport to the "xs" breakpoint 11ms

And I go to "/programs" 649ms

And I wait until the page is loaded 2ms

Then I should see "Education" 3ms

And I should not see "The website encountered an unexpected error" 1ms

@check @exploratory @fast @local @development @navigation
Scenario Outline:Check the Resources listing renders its content on a phone
6

Given I am an anonymous user 669ms

When I set the viewport to the "xs" breakpoint 11ms

And I go to "/resources" 821ms

And I wait until the page is loaded 2ms

Then I should see "Resources" 3ms

And I should not see "The website encountered an unexpected error" 2ms

@check @exploratory @fast @local @development @navigation
Scenario Outline:Check the Events listing renders its content on a phone
6

Given I am an anonymous user 671ms

When I set the viewport to the "xs" breakpoint 11ms

And I go to "/events" 695ms

And I wait until the page is loaded 2ms

Then I should see "Events" 3ms

And I should not see "The website encountered an unexpected error" 1ms

@check @exploratory @fast @local @development @staging @production @navigation
Scenario:Check a country page keeps its breadcrumb trail on a phone
6

Given I am an anonymous user 673ms

When I set the viewport to the "xs" breakpoint 11ms

And I go to "/countries/afghanistan" 5s 743ms

And I wait until the page is loaded 408ms

Then "nav[aria-label='breadcrumb']" should be visible 1ms

And I should see "Afghanistan" 3ms

As a site visitor
I want the Countries page to name every country Horizon Aid works in and to
reach each country's own page
So that I can get to the country I care about without guessing at URLs.

@check @critical @acceptance @local @development @staging @production @countries
Scenario:Check the countries listing renders its hero, its section and the countries view
11

Given I am an anonymous user 7s 334ms

When I go to "/countries" 5s 437ms

And I wait until the page is loaded 5ms

Then the page should have a main landmark 3ms

And "h1" should have text "Where We Work" within 10 seconds 2ms

And I should see "See All Countries" 4ms

And "main .view-countries" should be visible within 10 seconds 2ms

And I should see "Afghanistan" 3ms

And I should see "Yemen" 3ms

And the link "View Country" with the href "/countries/afghanistan" within the element "main .view-countries" should exist 1ms

And I should not see "The website encountered an unexpected error" 2ms

Given I am an anonymous user 674ms

When I go to "/countries?search=afghanistan" 5s 558ms

And I wait until the page is loaded 4ms

Then the link "View Country" with the href "/countries/afghanistan" within the element "main .view-countries" should exist 2ms

And the link "View Country" with the href "/countries/yemen" within the element "main .view-countries" should not exist 1ms

Given I am an anonymous user 673ms

When I go to "/countries?search=bangladesh" 5s 568ms

And I wait until the page is loaded 3ms

Then the link "View Country" with the href "/countries/bangladesh" within the element "main .view-countries" should exist 2ms

And the link "View Country" with the href "/countries/yemen" within the element "main .view-countries" should not exist 1ms

Given I am an anonymous user 674ms

When I go to "/countries?search=colombia" 5s 559ms

And I wait until the page is loaded 4ms

Then the link "View Country" with the href "/countries/colombia" within the element "main .view-countries" should exist 2ms

And the link "View Country" with the href "/countries/yemen" within the element "main .view-countries" should not exist 1ms

Given I am an anonymous user 673ms

When I go to "/countries?search=ecuador" 5s 555ms

And I wait until the page is loaded 3ms

Then the link "View Country" with the href "/countries/ecuador" within the element "main .view-countries" should exist 1ms

And the link "View Country" with the href "/countries/yemen" within the element "main .view-countries" should not exist 1ms

Given I am an anonymous user 674ms

When I go to "/countries?search=kenya" 5s 570ms

And I wait until the page is loaded 3ms

Then the link "View Country" with the href "/countries/kenya" within the element "main .view-countries" should exist 1ms

And the link "View Country" with the href "/countries/yemen" within the element "main .view-countries" should not exist 1ms

Given I am an anonymous user 679ms

When I go to "/countries?search=lebanon" 5s 567ms

And I wait until the page is loaded 4ms

Then the link "View Country" with the href "/countries/lebanon" within the element "main .view-countries" should exist 2ms

And the link "View Country" with the href "/countries/yemen" within the element "main .view-countries" should not exist 1ms

Given I am an anonymous user 671ms

When I go to "/countries?search=myanmar" 5s 564ms

And I wait until the page is loaded 3ms

Then the link "View Country" with the href "/countries/myanmar" within the element "main .view-countries" should exist 1ms

And the link "View Country" with the href "/countries/yemen" within the element "main .view-countries" should not exist 1ms

Given I am an anonymous user 675ms

When I go to "/countries?search=somalia" 5s 575ms

And I wait until the page is loaded 3ms

Then the link "View Country" with the href "/countries/somalia" within the element "main .view-countries" should exist 2ms

And the link "View Country" with the href "/countries/yemen" within the element "main .view-countries" should not exist 1ms

Given I am an anonymous user 671ms

When I go to "/countries?search=south+sudan" 5s 554ms

And I wait until the page is loaded 3ms

Then the link "View Country" with the href "/countries/south-sudan" within the element "main .view-countries" should exist 1ms

And the link "View Country" with the href "/countries/yemen" within the element "main .view-countries" should not exist 1ms

Given I am an anonymous user 673ms

When I go to "/countries?search=syria" 5s 547ms

And I wait until the page is loaded 3ms

Then the link "View Country" with the href "/countries/syria" within the element "main .view-countries" should exist 1ms

And the link "View Country" with the href "/countries/yemen" within the element "main .view-countries" should not exist 1ms

Given I am an anonymous user 671ms

When I go to "/countries?search=ukraine" 5s 563ms

And I wait until the page is loaded 3ms

Then the link "View Country" with the href "/countries/ukraine" within the element "main .view-countries" should exist 1ms

And the link "View Country" with the href "/countries/yemen" within the element "main .view-countries" should not exist 1ms

Given I am an anonymous user 674ms

When I go to "/countries?search=yemen" 5s 564ms

And I wait until the page is loaded 3ms

Then the link "View Country" with the href "/countries/yemen" within the element "main .view-countries" should exist 1ms

And the link "View Country" with the href "/countries/afghanistan" within the element "main .view-countries" should not exist 1ms

@check @regression @local @development @countries
Scenario:Verify the countries listing is ordered by country name
4

Given I am an anonymous user 673ms

When I go to "/countries" 5s 418ms

And I wait until the page is loaded 3ms

Then the element "main .view-countries a[href='/countries/yemen']" should appear after the element "main .view-countries a[href='/countries/afghanistan']" 5ms

@check @acceptance @local @development @countries
Scenario:Check a country card opens the country page it names
8

Given I am an anonymous user 674ms

When I go to "/countries?search=south+sudan" 5s 438ms

And I wait until the page is loaded 3ms

When I click on the element "main .view-countries a[href='/countries/south-sudan']" 1s 405ms

And I wait until the page is loaded 4s 453ms

Then the path should be "/countries/south-sudan" < 1ms

And "h1" should have text "South Sudan" within 10 seconds 1ms

And I should see "Our Role" 3ms

As a site visitor
I want a country page to set out our role, the work on the ground, the
figures behind it and the partners doing it
So that I can understand what Horizon Aid actually does in that country.

@check @critical @acceptance @fast @local @development @staging @production @countries
Scenario:Check a country page renders every section of the country template
11

Given I am an anonymous user 670ms

When I go to "/countries/kenya" 1s 96ms

And I wait until the page is loaded 2ms

Then the page should have a main landmark 2ms

And "h1" should have text "Kenya" within 10 seconds 1ms

And I should see "Our Role" 3ms

And I should see "On the Ground" 2ms

And I should see "By the Numbers" 2ms

And I should see "Key Country Partners" 2ms

And "main img" should be visible within 10 seconds 1ms

And I should not see "The website encountered an unexpected error" 1ms

@check @regression @fast @local @development @countries
Scenario Outline:Check the Afghanistan country page renders under its own alias
7

Given I am an anonymous user 668ms

When I go to "/countries/afghanistan" 978ms

And I wait until the page is loaded 2ms

Then "h1" should have text "Afghanistan" within 10 seconds 1ms

And I should see "Our Role" 4ms

And I should not see "The website encountered an unexpected error" 2ms

And I should not see "Page not found" 1ms

@check @regression @fast @local @development @countries
Scenario Outline:Check the Bangladesh country page renders under its own alias
7

Given I am an anonymous user 668ms

When I go to "/countries/bangladesh" 928ms

And I wait until the page is loaded 4ms

Then "h1" should have text "Bangladesh" within 10 seconds 1ms

And I should see "Our Role" 3ms

And I should not see "The website encountered an unexpected error" 2ms

And I should not see "Page not found" 1ms

@check @regression @fast @local @development @countries
Scenario Outline:Check the Colombia country page renders under its own alias
7

Given I am an anonymous user 673ms

When I go to "/countries/colombia" 957ms

And I wait until the page is loaded 2ms

Then "h1" should have text "Colombia" within 10 seconds 1ms

And I should see "Our Role" 4ms

And I should not see "The website encountered an unexpected error" 2ms

And I should not see "Page not found" 1ms

@check @regression @fast @local @development @countries
Scenario Outline:Check the Ecuador country page renders under its own alias
7

Given I am an anonymous user 672ms

When I go to "/countries/ecuador" 969ms

And I wait until the page is loaded 2ms

Then "h1" should have text "Ecuador" within 10 seconds 1ms

And I should see "Our Role" 3ms

And I should not see "The website encountered an unexpected error" 2ms

And I should not see "Page not found" 1ms

@check @regression @fast @local @development @countries
Scenario Outline:Check the Kenya country page renders under its own alias
7

Given I am an anonymous user 672ms

When I go to "/countries/kenya" 676ms

And I wait until the page is loaded 3ms

Then "h1" should have text "Kenya" within 10 seconds 1ms

And I should see "Our Role" 7ms

And I should not see "The website encountered an unexpected error" 2ms

And I should not see "Page not found" 1ms

@check @regression @fast @local @development @countries
Scenario Outline:Check the Lebanon country page renders under its own alias
7

Given I am an anonymous user 675ms

When I go to "/countries/lebanon" 991ms

And I wait until the page is loaded 2ms

Then "h1" should have text "Lebanon" within 10 seconds 1ms

And I should see "Our Role" 6ms

And I should not see "The website encountered an unexpected error" 2ms

And I should not see "Page not found" 1ms

@check @regression @fast @local @development @countries
Scenario Outline:Check the Myanmar country page renders under its own alias
7

Given I am an anonymous user 670ms

When I go to "/countries/myanmar" 976ms

And I wait until the page is loaded 2ms

Then "h1" should have text "Myanmar" within 10 seconds 1ms

And I should see "Our Role" 3ms

And I should not see "The website encountered an unexpected error" 2ms

And I should not see "Page not found" 1ms

@check @regression @fast @local @development @countries
Scenario Outline:Check the Somalia country page renders under its own alias
7

Given I am an anonymous user 670ms

When I go to "/countries/somalia" 1s 60ms

And I wait until the page is loaded 2ms

Then "h1" should have text "Somalia" within 10 seconds 1ms

And I should see "Our Role" 3ms

And I should not see "The website encountered an unexpected error" 2ms

And I should not see "Page not found" 1ms

@check @regression @fast @local @development @countries
Scenario Outline:Check the South Sudan country page renders under its own alias
7

Given I am an anonymous user 677ms

When I go to "/countries/south-sudan" 662ms

And I wait until the page is loaded 2ms

Then "h1" should have text "South Sudan" within 10 seconds 1ms

And I should see "Our Role" 3ms

And I should not see "The website encountered an unexpected error" 2ms

And I should not see "Page not found" 1ms

@check @regression @fast @local @development @countries
Scenario Outline:Check the Syria country page renders under its own alias
7

Given I am an anonymous user 677ms

When I go to "/countries/syria" 980ms

And I wait until the page is loaded 2ms

Then "h1" should have text "Syria" within 10 seconds 1ms

And I should see "Our Role" 6ms

And I should not see "The website encountered an unexpected error" 2ms

And I should not see "Page not found" 1ms

@check @regression @fast @local @development @countries
Scenario Outline:Check the Ukraine country page renders under its own alias
7

Given I am an anonymous user 674ms

When I go to "/countries/ukraine" 961ms

And I wait until the page is loaded 2ms

Then "h1" should have text "Ukraine" within 10 seconds 1ms

And I should see "Our Role" 3ms

And I should not see "The website encountered an unexpected error" 2ms

And I should not see "Page not found" 1ms

@check @regression @fast @local @development @countries
Scenario Outline:Check the Yemen country page renders under its own alias
7

Given I am an anonymous user 673ms

When I go to "/countries/yemen" 895ms

And I wait until the page is loaded 2ms

Then "h1" should have text "Yemen" within 10 seconds 1ms

And I should see "Our Role" 3ms

And I should not see "The website encountered an unexpected error" 2ms

And I should not see "Page not found" 1ms

@check @exploratory @fast @local @development @staging @production @countries
Scenario:Verify a country page links back to the Countries section
5

Given I am an anonymous user 672ms

When I go to "/countries/kenya" 657ms

And I wait until the page is loaded 2ms

Then "nav[aria-label='breadcrumb']" should be visible within 10 seconds 3ms

And "nav[aria-label='breadcrumb'] a[href='/countries']" should have a count of 1 1ms

As a site visitor
I want a country page to point me at the other countries we work in
So that I can keep reading about our work instead of going back to the
listing every time.

@check @critical @acceptance @fast @local @development @staging @production @countries
Scenario:Check a country page closes with the See Other Countries block
6

Given I am an anonymous user 674ms

When I go to "/countries/kenya" 662ms

And I wait until the page is loaded 4ms

Then I should see "See Other Countries" 3ms

And "main .view-countries" should be visible within 10 seconds 1ms

And "main .view-countries a[href^='/countries/']" should be visible within 10 seconds 1ms

Given I am an anonymous user 673ms

When I go to "/countries/afghanistan" 658ms

And I wait until the page is loaded 2ms

Then I should see "See Other Countries" 3ms

And "main .view-countries a[href^='/countries/']" should be visible within 10 seconds 1ms

And the link "View Country" with the href "/countries/afghanistan" within the element "main .view-countries" should not exist 1ms

@check @regression @fast @local @development @countries
Scenario Outline:Check the Kenya page offers other countries and not itself
6

Given I am an anonymous user 671ms

When I go to "/countries/kenya" 659ms

And I wait until the page is loaded 2ms

Then I should see "See Other Countries" 3ms

And "main .view-countries a[href^='/countries/']" should be visible within 10 seconds 1ms

And the link "View Country" with the href "/countries/kenya" within the element "main .view-countries" should not exist < 1ms

Given I am an anonymous user 671ms

When I go to "/countries/south-sudan" 657ms

And I wait until the page is loaded 2ms

Then I should see "See Other Countries" 3ms

And "main .view-countries a[href^='/countries/']" should be visible within 10 seconds 1ms

And the link "View Country" with the href "/countries/south-sudan" within the element "main .view-countries" should not exist < 1ms

@check @regression @fast @local @development @countries
Scenario Outline:Check the Yemen page offers other countries and not itself
6

Given I am an anonymous user 667ms

When I go to "/countries/yemen" 658ms

And I wait until the page is loaded 3ms

Then I should see "See Other Countries" 3ms

And "main .view-countries a[href^='/countries/']" should be visible within 10 seconds 1ms

And the link "View Country" with the href "/countries/yemen" within the element "main .view-countries" should not exist < 1ms

@check @acceptance @fast @local @development @countries
Scenario:Check a related country card opens another country page
11

Given I am an anonymous user 670ms

When I go to "/countries/kenya" 657ms

And I wait until the page is loaded 2ms

Then I should see "See Other Countries" 3ms

When I click on the element "main .view-countries a[href^='/countries/']" 669ms

And I wait until the page is loaded 6ms

Then the url should match "/countries/[a-z]" < 1ms

And the path should not be "/countries/kenya" < 1ms

And "h1" should be visible within 10 seconds 1ms

And I should see "Our Role" 4ms

And I should see "Key Country Partners" 5ms

As a supporter deciding what to fund
I want the Our Programs page to name every programme with a way into it
So that I can read up on the work before I give.

@check @critical @acceptance @fast @local @development @staging @production @programs
Scenario:Check the programs listing renders its hero and the programs view
8

Given I am an anonymous user 6s 186ms

When I go to "/programs" 6s 125ms

And I wait until the page is loaded 4ms

Then the page should have a main landmark 3ms

And "h1" should have text "Our Programs" within 10 seconds 2ms

And "main .view-programs" should be visible within 10 seconds 2ms

And "main .view-programs a[href^='/programs/']" should be visible within 10 seconds 1ms

And I should not see "The website encountered an unexpected error" 2ms

@check @regression @fast @local @development @programs
Scenario Outline:Check the programs listing links to the Education programme
5

Given I am an anonymous user 674ms

When I go to "/programs" 662ms

And I wait until the page is loaded 4ms

Then I should see "Education" 3ms

And the link "Learn More" with the href "/programs/education" within the element "main .view-programs" should exist 2ms

@check @regression @fast @local @development @programs
Scenario Outline:Check the programs listing links to the Health programme
5

Given I am an anonymous user 672ms

When I go to "/programs" 670ms

And I wait until the page is loaded 3ms

Then I should see "Health" 3ms

And the link "Learn More" with the href "/programs/health" within the element "main .view-programs" should exist 1ms

@check @regression @fast @local @development @programs
Scenario Outline:Check the programs listing links to the Women programme
5

Given I am an anonymous user 674ms

When I go to "/programs" 658ms

And I wait until the page is loaded 3ms

Then I should see "Women" 3ms

And the link "Learn More" with the href "/programs/women" within the element "main .view-programs" should exist 1ms

@check @regression @fast @local @development @programs
Scenario Outline:Check the programs listing links to the Agriculture programme
5

Given I am an anonymous user 673ms

When I go to "/programs" 661ms

And I wait until the page is loaded 3ms

Then I should see "Agriculture" 3ms

And the link "Learn More" with the href "/programs/agriculture" within the element "main .view-programs" should exist 1ms

@check @regression @fast @local @development @programs
Scenario Outline:Check the programs listing links to the Medicine programme
5

Given I am an anonymous user 674ms

When I go to "/programs" 663ms

And I wait until the page is loaded 2ms

Then I should see "Medicine" 2ms

And the link "Learn More" with the href "/programs/medicine" within the element "main .view-programs" should exist 1ms

Given I am an anonymous user 673ms

When I go to "/programs?search=health" 843ms

And I wait until the page is loaded 4ms

Then the link "Learn More" with the href "/programs/health" within the element "main .view-programs" should exist 2ms

And the link "Learn More" with the href "/programs/education" within the element "main .view-programs" should not exist 1ms

@check @regression @fast @local @development @programs
Scenario:Check the programs listing answers the donation questions
6

Given I am an anonymous user 669ms

When I go to "/programs" 656ms

And I wait until the page is loaded 2ms

Then I should see "FAQ" 3ms

And I should see "How is my donation used?" 2ms

And I should see "Where does Horizon Aid operate?" 2ms

@check @acceptance @fast @local @development @programs
Scenario:Check a programme row opens the programme page it names
8

Given I am an anonymous user 674ms

When I go to "/programs" 655ms

And I wait until the page is loaded 3ms

When I click on the element "main .view-programs a[href='/programs/agriculture']" 1s 843ms

And I wait until the page is loaded 4s 368ms

Then the path should be "/programs/agriculture" < 1ms

And "h1" should have text "Agriculture" within 10 seconds 1ms

And I should see "About This Program" 3ms

As a supporter deciding what to fund
I want a programme page to explain the work, the figures behind it and where
it runs
So that I know what my donation pays for before I give.

@check @critical @acceptance @fast @local @development @staging @production @programs
Scenario:Check a programme page renders the sections of the programme template
12

Given I am an anonymous user 668ms

When I go to "/programs/education" 1s 66ms

And I wait until the page is loaded 3ms

Then the page should have a main landmark 2ms

And "h1" should have text "Education" within 10 seconds 1ms

And I should see "About This Program" 3ms

And I should see "Education by the Numbers" 2ms

And I should see "How We Deliver Education" 2ms

And I should see "Where Education Runs" 2ms

And I should see "Join Our Mission" 2ms

And "main img" should be visible within 10 seconds 1ms

And I should not see "The website encountered an unexpected error" 1ms

Given I am an anonymous user 673ms

When I go to "/programs/education" 659ms

And I wait until the page is loaded 3ms

Then "h1" should have text "Education" within 10 seconds 1ms

And I should see "About This Program" 3ms

And I should see "Education by the Numbers" 2ms

And I should see "How We Deliver Education" 2ms

And I should not see "The website encountered an unexpected error" 5ms

And I should not see "Page not found" 1ms

@check @regression @fast @local @development @programs
Scenario Outline:Check the Health programme page renders under its own alias
9

Given I am an anonymous user 673ms

When I go to "/programs/health" 1s 21ms

And I wait until the page is loaded 3ms

Then "h1" should have text "Health" within 10 seconds 1ms

And I should see "About This Program" 2ms

And I should see "Health by the Numbers" 2ms

And I should see "How We Deliver Health" 2ms

And I should not see "The website encountered an unexpected error" 1ms

And I should not see "Page not found" 1ms

@check @regression @fast @local @development @programs
Scenario Outline:Check the Women programme page renders under its own alias
9

Given I am an anonymous user 676ms

When I go to "/programs/women" 971ms

And I wait until the page is loaded 2ms

Then "h1" should have text "Women" within 10 seconds 1ms

And I should see "About This Program" 2ms

And I should see "Rights by the Numbers" 2ms

And I should see "How We Deliver for Women" 2ms

And I should not see "The website encountered an unexpected error" 1ms

And I should not see "Page not found" 1ms

Given I am an anonymous user 669ms

When I go to "/programs/agriculture" 659ms

And I wait until the page is loaded 2ms

Then "h1" should have text "Agriculture" within 10 seconds 1ms

And I should see "About This Program" 2ms

And I should see "Agriculture by the Numbers" 1ms

And I should see "How We Deliver Agriculture" 2ms

And I should not see "The website encountered an unexpected error" 1ms

And I should not see "Page not found" 1ms

@check @regression @fast @local @development @programs
Scenario Outline:Check the Medicine programme page renders under its own alias
9

Given I am an anonymous user 672ms

When I go to "/programs/medicine" 988ms

And I wait until the page is loaded 4ms

Then "h1" should have text "Medicine" within 10 seconds 2ms

And I should see "About This Program" 4ms

And I should see "Medicine by the Numbers" 4ms

And I should see "How We Deliver Medicine" 2ms

And I should not see "The website encountered an unexpected error" 2ms

And I should not see "Page not found" 1ms

Given I am an anonymous user 669ms

When I go to "/programs/education" 664ms

And I wait until the page is loaded 4ms

Then "main .map" should be visible within 10 seconds 1ms

And "main .map svg path[data-iso-a2='AF']" should be visible within 10 seconds 1ms

And the link "Learn More" with the href "/countries/afghanistan" within the element "main .map" should exist 1ms

@check @regression @fast @local @development @programs
Scenario Outline:Check the Health programme page maps the countries it runs in
6

Given I am an anonymous user 672ms

When I go to "/programs/health" 666ms

And I wait until the page is loaded 2ms

Then "main .map" should be visible within 10 seconds 1ms

And "main .map svg path[data-iso-a2='LB']" should be visible within 10 seconds 1ms

And the link "Learn More" with the href "/countries/lebanon" within the element "main .map" should exist 1ms

@check @regression @fast @local @development @programs
Scenario Outline:Check the Women programme page maps the countries it runs in
6

Given I am an anonymous user 674ms

When I go to "/programs/women" 660ms

And I wait until the page is loaded 2ms

Then "main .map" should be visible within 10 seconds 1ms

And "main .map svg path[data-iso-a2='CO']" should be visible within 10 seconds 1ms

And the link "Learn More" with the href "/countries/colombia" within the element "main .map" should exist 1ms

Given I am an anonymous user 671ms

When I go to "/programs/agriculture" 658ms

And I wait until the page is loaded 2ms

Then "main .map" should be visible within 10 seconds 1ms

And "main .map svg path[data-iso-a2='SO']" should be visible within 10 seconds 1ms

And the link "Learn More" with the href "/countries/somalia" within the element "main .map" should exist 1ms

Given I am an anonymous user 673ms

When I go to "/programs/medicine" 686ms

And I wait until the page is loaded 2ms

Then "main .map" should be visible within 10 seconds 1ms

And "main .map svg path[data-iso-a2='UA']" should be visible within 10 seconds 1ms

And the link "Learn More" with the href "/countries/ukraine" within the element "main .map" should exist 1ms

@check @acceptance @fast @local @development @programs
Scenario:Check picking a country on the programme map opens that country page
12

Given I am an anonymous user 675ms

When I go to "/programs/education" 661ms

And I wait until the page is loaded 2ms

Then I should see "Where Education Runs" 3ms

When I click on the element "main .map svg path[data-iso-a2='KE']" 325ms

Then "main .map .map-info-card[data-country-code='KE']" should be visible within 10 seconds 1ms

And "main .map .map-info-card[data-country-code='KE'] a[href='/countries/kenya']" should be visible within 10 seconds 1ms

When I click on the element "main .map .map-info-card[data-country-code='KE'] a[href='/countries/kenya']" 1s 583ms

And I wait until the page is loaded 3ms

Then the path should be "/countries/kenya" < 1ms

And "h1" should have text "Kenya" within 10 seconds 1ms

And I should see "Our Role" 2ms

@check @exploratory @fast @local @development @staging @production @programs
Scenario:Verify a programme page links back to the Programs section
5

Given I am an anonymous user 672ms

When I go to "/programs/education" 658ms

And I wait until the page is loaded 2ms

Then "nav[aria-label='breadcrumb']" should be visible within 10 seconds 1ms

And "nav[aria-label='breadcrumb'] a[href='/programs']" should have a count of 1 1ms

As a site visitor
I want a Resources listing at /resources with cards and filters
So that I can browse the stories, reports and briefs Horizon Aid publishes.

Given I am an anonymous user 7s 73ms

When I go to "/resources" 10s 857ms

And I wait until the page is loaded 369ms

Then "h1" should have text "Resources" 3ms

And I should see "Latest Updates" 5ms

And I should see "Clinic networks in dense settlements" 4ms

And I should see "Community-led reconstruction" 4ms

And I should see "Winterisation reaches frontline households" 4ms

And I should not see "The website encountered an unexpected error" 4ms

@check @regression @fast @local @development @resources
Scenario:Verify every resource card links to the article it names
6

Given I am an anonymous user 709ms

When I go to "/resources" 693ms

And I wait until the page is loaded 6ms

Then "a[href='/resources/clinic-networks-dense-settlements']" should be attached within 10 seconds 3ms

And "a[href='/resources/community-led-reconstruction']" should be attached 2ms

And "a[href='/resources/winterisation-reaches-frontline-households']" should be attached 2ms

@check @smoke @fast @local @development @staging @production @resources
Scenario:Check the resources listing summarises the page it shows and offers a pager
5

Given I am an anonymous user 702ms

When I go to "/resources" 697ms

And I wait until the page is loaded 6ms

Then I should see text matching "Showing 1-12 of \d+" 2ms

And I see visible pagination 2ms

@check @regression @fast @local @development @staging @production @resources
Scenario:Check the resources listing exposes the keyword, Program and Type filters
10

Given I am an anonymous user 703ms

When I go to "/resources" 695ms

And I wait until the page is loaded 5ms

Then I see visible exposed filters form 3ms

And I should see "Search Keyword" 6ms

And I should see "Program" 3ms

And I should see "Type" 4ms

And I should see "Search Program" 4ms

And I should see "Select type" 10ms

And the "Apply Filters" button should be visible 5ms

@check @regression @fast @local @development @staging @production @resources
Scenario:Verify the keyword field is labelled and prompts the visitor
5

Given I am an anonymous user 710ms

When I go to "/resources" 697ms

And I wait until the page is loaded 5ms

Then "input[name='search']" should be editable 2ms

And "input[name='search']" should have attribute "placeholder" with value "Search keywords" 2ms

@check @regression @fast @a11y @local @development @staging @production @resources
Scenario:Check the resources listing carries its landmarks and a single first-level heading
7

Given I am an anonymous user 705ms

When I go to "/resources" 700ms

And I wait until the page is loaded 5ms

Then the page should have a main landmark 4ms

And the page should have a navigation landmark 2ms

And the page should have exactly one h1 1ms

And the link "Resources" with the href "/resources" should exist 2ms

As a site visitor
I want a resource article page with its story, share actions and related reading
So that I can read the work Horizon Aid published and find more of it.

@check @acceptance @local @development @staging @production @resources
Scenario:Check a resource article renders its title, body sections and image
11

Given I am an anonymous user 704ms

When I warm up "/resources/clinic-networks-dense-settlements" at all testing breakpoints 34s 919ms

And I go to "/resources/clinic-networks-dense-settlements" 688ms

And I wait until the page is loaded 6ms

Then the page should have a main landmark 7ms

And the page should have exactly one h1 2ms

And "h1" should have text "Clinic networks in dense settlements" 1ms

And I should see "Introduction" 8ms

And I should see "The problem, before the work started" 3ms

And I should see "What comes next" 5ms

And "main img" should be visible within 10 seconds 4ms

@check @regression @fast @local @development @staging @production @resources
Scenario:Check a resource article offers the configured share actions
8

Given I am an anonymous user 708ms

When I go to "/resources/clinic-networks-dense-settlements" 687ms

And I wait until the page is loaded 5ms

Then I should see "Share" 5ms

And the "Share on Facebook (opens in a new tab)" link should be visible 6ms

And the "Share on LinkedIn (opens in a new tab)" link should be visible 2ms

And the "Share on X (opens in a new tab)" link should be visible 2ms

And the "Share on Instagram (opens in a new tab)" link should be visible 4ms

@check @regression @fast @local @development @staging @production @resources
Scenario:Verify a resource article leads back to Resources and on to related reading
8

Given I am an anonymous user 705ms

When I go to "/resources/clinic-networks-dense-settlements" 699ms

And I wait until the page is loaded 6ms

Then "Home" should be in the breadcrumb 4ms

And "Resources" should be in the breadcrumb 1ms

And the link "Resources" with the href "/resources" should exist 3ms

And I should see "Latest News" 5ms

And I should see "Join Our Mission" 3ms

@check @smoke @fast @local @development @staging @production @resources
Scenario Outline:Check the Clinic networks in dense settlements article renders for an anonymous visitor
7

Given I am an anonymous user 706ms

When I go to "/resources/clinic-networks-dense-settlements" 697ms

And I wait until the page is loaded 6ms

Then "h1" should have text "Clinic networks in dense settlements" 2ms

And I should see "Share" 5ms

And I should not see "The website encountered an unexpected error" 3ms

And I should not see "Page not found" 2ms

@check @smoke @fast @local @development @staging @production @resources
Scenario Outline:Check the Community-led reconstruction article renders for an anonymous visitor
7

Given I am an anonymous user 703ms

When I go to "/resources/community-led-reconstruction" 1s 405ms

And I wait until the page is loaded 5ms

Then "h1" should have text "Community-led reconstruction" 2ms

And I should see "Share" 4ms

And I should not see "The website encountered an unexpected error" 2ms

And I should not see "Page not found" 2ms

Given I am an anonymous user 704ms

When I go to "/resources/winterisation-reaches-frontline-households" 1s 340ms

And I wait until the page is loaded 5ms

Then "h1" should have text "Winterisation reaches frontline households" 2ms

And I should see "Share" 4ms

And I should not see "The website encountered an unexpected error" 5ms

And I should not see "Page not found" 3ms

@check @smoke @fast @local @development @staging @production @resources
Scenario Outline:Check the Emergency relief in flooded states article renders for an anonymous visitor
7

Given I am an anonymous user 705ms

When I go to "/resources/emergency-relief-flooded-states" 878ms

And I wait until the page is loaded 4ms

Then "h1" should have text "Emergency relief in flooded states" 1ms

And I should see "Share" 8ms

And I should not see "The website encountered an unexpected error" 3ms

And I should not see "Page not found" 4ms

As a site visitor
I want to narrow the Resources listing with its filters and page through the rest
So that I can find one brief instead of reading through everything published.

Given I am an anonymous user 700ms

When I go to "/resources" 693ms

And I wait until the page is loaded 9ms

Then I should see "School feeding and attendance" 5ms

When I fill in "Search Keyword" with "clinic networks" 319ms

And I click the "Apply Filters" button 1s 95ms

And I wait until the page is loaded 8ms

Then the url should match "search=clinic" < 1ms

And I should see "Clinic networks in dense settlements" 3ms

And I should not see "School feeding and attendance" 3ms

And I should not see "Winter learning continuity" 2ms

Given I am an anonymous user 702ms

When I go to "/resources" 715ms

And I wait until the page is loaded 5ms

When I fill in "Search Keyword" with "telescope" 316ms

And I click the "Apply Filters" button 1s 95ms

And I wait until the page is loaded 7ms

Then I should see "There are no blog posts yet." 3ms

And I should not see "Clinic networks in dense settlements" 2ms

And I should not see "School feeding and attendance" 2ms

And I don't see pagination 2ms

Given I am an anonymous user 705ms

When I go to "/resources" 697ms

And I wait until the page is loaded 5ms

Then I should see "Winter learning continuity" 5ms

When I select "Healthcare & Medicine" from "program" 313ms

And I click the "Apply Filters" button 1s 93ms

And I wait until the page is loaded 5s 6ms

Then the url should match "program=\d+" < 1ms

And I should see "Clinic networks in dense settlements" 4ms

And I should not see "Winter learning continuity" 2ms

And I should not see "School feeding and attendance" 2ms

Given I am an anonymous user 708ms

When I go to "/resources" 696ms

And I wait until the page is loaded 4ms

Then I should see "Clinic networks in dense settlements" 5ms

When I select "Policy brief" from "type" 313ms

And I click the "Apply Filters" button 1s 90ms

And I wait until the page is loaded 5s 6ms

Then I should see "Legal aid hours and where they go" 3ms

And I should not see "Clinic networks in dense settlements" 2ms

@check @acceptance @local @development @resources
Scenario:Verify a keyword and a Program filter apply together
10

Given I am an anonymous user 707ms

When I go to "/resources" 696ms

And I wait until the page is loaded 5ms

And I fill in "Search Keyword" with "clinic" 317ms

And I select "Healthcare & Medicine" from "program" 314ms

And I click the "Apply Filters" button 1s 76ms

And I wait until the page is loaded 8ms

Then the url should match "search=clinic" < 1ms

And I should see "Clinic networks in dense settlements" 4ms

And I should not see "Winterisation reaches frontline households" 3ms

Given I am an anonymous user 711ms

When I go to "/resources" 695ms

And I wait until the page is loaded 5ms

And I click the "Apply Filters" button 1s 90ms

And I wait until the page is loaded 5s 7ms

Then I should see text matching "Showing 1-12 of \d+" 1ms

And I should see "Clinic networks in dense settlements" 6ms

And I should see "School feeding and attendance" 3ms

@check @acceptance @local @development @resources
Scenario:Check paging the resources listing moves the range on
15

Given I am an anonymous user 701ms

When I go to "/resources" 698ms

And I wait until the page is loaded 5ms

Then I see visible pagination 2ms

And I should see text matching "Showing 1-12 of \d+" 1ms

When I click on the link with the title "Go to page 2" 1s 87ms

And I wait until the page is loaded 8ms

Then the url should match "page=1" < 1ms

And I should see text matching "Showing 13-\d+ of \d+" 6ms

And I should not see text matching "Showing 1-12 of" 6ms

When I click on the link with the title "Go to last page" 1s 135ms

And I wait until the page is loaded 5ms

Then I should see text matching "Showing \d+-\d+ of \d+" 1ms

And I should not see text matching "Showing 1-12 of" < 1ms

And "a[href='/resources/cultivating-independence-rural-farms']" should be attached within 10 seconds 1ms

Given I am an anonymous user 709ms

When I go to "/resources" 696ms

And I wait until the page is loaded 6ms

And I fill in "Search Keyword" with "clinic networks" 319ms

And I click the "Apply Filters" button 1s 76ms

And I wait until the page is loaded 6ms

Then I should not see "School feeding and attendance" 2ms

When I go to "/resources" 672ms

And I wait until the page is loaded 4ms

Then "input[name='search']" should have value "" 2ms

And I should see "School feeding and attendance" 4ms

And I should see "Clinic networks in dense settlements" 2ms

As a site visitor
I want an Events listing at /events with cards, a summary and filters
So that I can see what Horizon Aid is running and narrow it down.

Given I am an anonymous user 2s 610ms

When I go to "/events" 6s 202ms

And I wait until the page is loaded 3ms

Then "h1" should have text "Events" 2ms

And I should see "Upcoming Events" 4ms

And I should see "Water access in crisis zones" 2ms

And I should see "Impact reporting transparency talk" 2ms

And I should not see "The website encountered an unexpected error" 2ms

@check @regression @fast @local @development @events
Scenario:Verify every event card links to the event it names
6

Given I am an anonymous user 672ms

When I go to "/events" 658ms

And I wait until the page is loaded 3ms

Then "a[href='/events/water-access-crisis-zones']" should be attached within 10 seconds 1ms

And "a[href='/events/impact-reporting-transparency-talk']" should be attached < 1ms

And "a[href='/events/annual-fundraising-gala']" should be attached < 1ms

@check @smoke @fast @local @development @staging @production @events
Scenario:Check the events listing summarises the page it shows and offers a pager
5

Given I am an anonymous user 672ms

When I go to "/events" 654ms

And I wait until the page is loaded 3ms

Then I should see text matching "Showing 1-9 of \d+" 1ms

And I see visible pagination 1ms

@check @regression @fast @local @development @staging @production @events
Scenario:Check the events listing exposes the keyword, Type and Topic filters
11

Given I am an anonymous user 672ms

When I go to "/events" 657ms

And I wait until the page is loaded 2ms

Then I see visible exposed filters form 1ms

And I should see "Search Keyword" 3ms

And I should see "Type" 5ms

And I should see "Topic" 2ms

And I should see "Select Type" 4ms

And I should see "Search Topic" 2ms

And the "Apply Filters" button should be visible 4ms

And the "Reset" button should be visible 1ms

@check @regression @fast @local @development @staging @production @events
Scenario:Verify the keyword field is labelled and prompts the visitor
5

Given I am an anonymous user 668ms

When I go to "/events" 654ms

And I wait until the page is loaded 2ms

Then "input[name='search']" should be editable 2ms

And "input[name='search']" should have attribute "placeholder" with value "Search Keyword" 1ms

@check @regression @fast @a11y @local @development @staging @production @events
Scenario:Check the events listing carries its landmarks and a single first-level heading
7

Given I am an anonymous user 669ms

When I go to "/events" 653ms

And I wait until the page is loaded 2ms

Then the page should have a main landmark 2ms

And the page should have a navigation landmark 1ms

And the page should have exactly one h1 < 1ms

And the link "Events" with the href "/events" should exist 1ms

As a site visitor
I want an event page with its date, programme and registration action
So that I know what the event is and how to join it.

Given I am an anonymous user 675ms

When I go to "/events/winterisation-readiness-briefing" 5s 912ms

And I wait until the page is loaded 141ms

Then the page should have a main landmark 2ms

And the page should have exactly one h1 1ms

And "h1" should have text "Winterisation readiness briefing" 1ms

And I should see "Briefing" 2ms

And I should see "24 September 2027" 2ms

And the "Register Today" button should be visible 3ms

And I should see "About this Event" 1ms

And I should see "What You'll Learn" 2ms

And I should see "Speakers" 1ms

@check @regression @fast @local @development @staging @production @events
Scenario:Check an event page offers the configured share actions
8

Given I am an anonymous user 673ms

When I go to "/events/winterisation-readiness-briefing" 555ms

And I wait until the page is loaded 3ms

Then I should see "Share" 2ms

And the "Share on Facebook (opens in a new tab)" link should be visible 4ms

And the "Share on LinkedIn (opens in a new tab)" link should be visible 2ms

And the "Share on X (opens in a new tab)" link should be visible 1ms

And the "Share on Instagram (opens in a new tab)" link should be visible 4ms

@check @regression @fast @local @development @staging @production @events
Scenario:Verify an event page leads back to Events and on to more events
8

Given I am an anonymous user 672ms

When I go to "/events/winterisation-readiness-briefing" 552ms

And I wait until the page is loaded 2ms

Then "Home" should be in the breadcrumb 1ms

And "Events" should be in the breadcrumb < 1ms

And the link "Events" with the href "/events" should exist 1ms

And I should see "More Events" 2ms

And I should see "Join Our Mission" 2ms

@check @regression @fast @local @development @events
Scenario:Verify a related event card points at another event
5

Given I am an anonymous user 670ms

When I go to "/events/winterisation-readiness-briefing" 551ms

And I wait until the page is loaded 2ms

Then I should see "Emergency shelter standards review" 2ms

And "a[href='/events/emergency-shelter-standards-review']" should be attached within 10 seconds 1ms

Given I am an anonymous user 669ms

When I go to "/events/winterisation-readiness-briefing" 556ms

And I wait until the page is loaded 2ms

Then "h1" should have text "Winterisation readiness briefing" 1ms

And I should see "About this Event" 2ms

And I should see "Share" 3ms

And I should not see "The website encountered an unexpected error" 1ms

And I should not see "Page not found" 1ms

@check @smoke @fast @local @development @staging @production @events
Scenario Outline:Check the Water access in crisis zones event page renders for an anonymous visitor
8

Given I am an anonymous user 672ms

When I go to "/events/water-access-crisis-zones" 930ms

And I wait until the page is loaded 3ms

Then "h1" should have text "Water access in crisis zones" 1ms

And I should see "About this Event" 2ms

And I should see "Share" 2ms

And I should not see "The website encountered an unexpected error" 1ms

And I should not see "Page not found" 1ms

Given I am an anonymous user 672ms

When I go to "/events/supply-chain-resilience-review" 5s 278ms

And I wait until the page is loaded 405ms

Then "h1" should have text "Supply chain resilience review" 1ms

And I should see "About this Event" 2ms

And I should see "Share" 1ms

And I should not see "The website encountered an unexpected error" 1ms

And I should not see "Page not found" 1ms

Given I am an anonymous user 675ms

When I go to "/events/impact-reporting-transparency-talk" 904ms

And I wait until the page is loaded 2ms

Then "h1" should have text "Impact reporting transparency talk" 1ms

And I should see "About this Event" 2ms

And I should see "Share" 5ms

And I should not see "The website encountered an unexpected error" 1ms

And I should not see "Page not found" 1ms

As a site visitor
I want to narrow the Events listing with its filters and page through the rest
So that I can find the event I would actually attend.

@check @acceptance @fast @local @development @events
Scenario:Check a keyword typed into the form narrows the events listing
11

Given I am an anonymous user 673ms

When I go to "/events" 656ms

And I wait until the page is loaded 2ms

Then I should see "Digital security for advocacy groups" 3ms

When I fill in "Search Keyword" with "winterisation" 312ms

And I click the "Apply Filters" button 807ms

And I wait until the page is loaded 3ms

Then the url should match "search=winterisation" < 1ms

And I should see "Winterisation readiness briefing" 3ms

And I should not see "Digital security for advocacy groups" 1ms

And I should not see "Annual fundraising gala" 1ms

@check @exploratory @fast @local @development @events
Scenario:Check a keyword that matches nothing empties the events listing
9

Given I am an anonymous user 673ms

When I go to "/events" 655ms

And I wait until the page is loaded 3ms

When I fill in "Search Keyword" with "telescope" 312ms

And I click the "Apply Filters" button 829ms

And I wait until the page is loaded 3ms

Then I should not see "Digital security for advocacy groups" 1ms

And I should not see "Winterisation readiness briefing" 1ms

And I don't see pagination 2ms

@check @acceptance @fast @local @development @events
Scenario:Check choosing a Type narrows the events listing to that format
10

Given I am an anonymous user 671ms

When I go to "/events" 655ms

And I wait until the page is loaded 3ms

Then I should see "Grassroots leadership summit" 3ms

When I select "Briefing" from "event_categories" 311ms

And I click the "Apply Filters" button 795ms

And I wait until the page is loaded 3ms

Then the url should match "event_categories=\d+" < 1ms

And I should see "Winterisation readiness briefing" 2ms

And I should not see "Grassroots leadership summit" 1ms

@check @acceptance @fast @local @development @events
Scenario:Check choosing a Topic narrows the events listing to that sector
10

Given I am an anonymous user 667ms

When I go to "/events" 657ms

And I wait until the page is loaded 2ms

When I select "Health" from "event_topics" 307ms

And I click the "Apply Filters" button 806ms

And I wait until the page is loaded 3ms

Then the url should match "event_topics=\d+" < 1ms

And I should see "Mobile health outreach clinic day" 2ms

And I should not see "Winterisation readiness briefing" 1ms

And I should not see "Grassroots leadership summit" 1ms

@check @acceptance @fast @local @development @events
Scenario:Verify a Type and a Topic filter apply together
10

Given I am an anonymous user 671ms

When I go to "/events" 655ms

And I wait until the page is loaded 2ms

And I select "Briefing" from "event_categories" 307ms

And I select "Shelter" from "event_topics" 306ms

And I click the "Apply Filters" button 793ms

And I wait until the page is loaded 2ms

Then I should see "Winterisation readiness briefing" 2ms

And I should see "Emergency shelter standards review" 1ms

And I should not see "Food security outlook roundtable" 1ms

Given I am an anonymous user 669ms

When I go to "/events" 655ms

And I wait until the page is loaded 2ms

And I fill in "Search Keyword" with "telescope" 309ms

And I click the "Apply Filters" button 668ms

And I wait until the page is loaded 2ms

Then I should not see "Digital security for advocacy groups" 1ms

When I click the "Reset" button 728ms

And I wait until the page is loaded 3ms

Then "input[name='search']" should have value "" 1ms

And I should see "Digital security for advocacy groups" 2ms

And I should see text matching "Showing 1-9 of \d+" 1ms

@check @exploratory @fast @local @development @events
Scenario:Verify applying an empty form leaves the events listing whole
8

Given I am an anonymous user 672ms

When I go to "/events" 655ms

And I wait until the page is loaded 2ms

And I click the "Apply Filters" button 792ms

And I wait until the page is loaded 2ms

Then I should see text matching "Showing 1-9 of \d+" 1ms

And I should see "Digital security for advocacy groups" 2ms

And I should see "Water access in crisis zones" 2ms

Given I am an anonymous user 673ms

When I go to "/events" 654ms

And I wait until the page is loaded 2ms

Then I see visible pagination 1ms

And I should not see "Winterisation readiness briefing" 1ms

When I click on the link with the title "Go to page 2" 806ms

And I wait until the page is loaded 3ms

Then the url should match "page=1" < 1ms

And I should see text matching "Showing 10-\d+ of \d+" < 1ms

And I should see "Winterisation readiness briefing" 2ms

And "a[href='/events/winterisation-readiness-briefing']" should be attached within 10 seconds 1ms

And I should not see "Digital security for advocacy groups" 1ms

@check @exploratory @fast @local @development @events
Scenario:Verify paging back returns to the first page of events
11

Given I am an anonymous user 673ms

When I go to "/events" 654ms

And I wait until the page is loaded 2ms

And I click on the link with the title "Go to page 2" 648ms

And I wait until the page is loaded 3ms

Then I should see "Winterisation readiness briefing" 3ms

When I click on the link with the title "Go to previous page" 774ms

And I wait until the page is loaded 2ms

Then I should see text matching "Showing 1-9 of \d+" < 1ms

And I should see "Digital security for advocacy groups" 2ms

And I should not see "Winterisation readiness briefing" 1ms

As a donor, partner or grant officer
I want the Our Impact page to state what the organisation has achieved
So that I can judge whether my money reaches people.

@check @critical @acceptance @local @development @staging @production @impact
Scenario:Check the Our Impact page states its title and its transparency promise
8

Given I am an anonymous user 7s 301ms

When I go to "/impact" 5s 550ms

And I wait until the page is loaded 408ms

Then "h1" should contain text "Our Impact" within 10 seconds 2ms

And I should see "We believe in absolute transparency" 2ms

And I should see "we track every dollar" 1ms

And "nav[aria-label='breadcrumb']" should be visible within 10 seconds 1ms

And I should not see "The website encountered an unexpected error" 1ms

@check @critical @acceptance @local @development @staging @production @impact
Scenario Outline:Verify the headline counter for Lives Protected counts up to its published total
5

Given I am an anonymous user 669ms

When I go to "/impact" 5s 306ms

And I wait until the page is loaded 3ms

Then eventually I should see "20K+" within 10 seconds 1ms

And I should see "Lives Protected" 2ms

@check @critical @acceptance @local @development @staging @production @impact
Scenario Outline:Verify the headline counter for Legal Aid Hours counts up to its published total
5

Given I am an anonymous user 672ms

When I go to "/impact" 5s 305ms

And I wait until the page is loaded 4ms

Then eventually I should see "137K+" within 10 seconds 1ms

And I should see "Legal Aid Hours" 2ms

@check @critical @acceptance @local @development @staging @production @impact
Scenario Outline:Verify the headline counter for Communities Served counts up to its published total
5

Given I am an anonymous user 673ms

When I go to "/impact" 5s 304ms

And I wait until the page is loaded 3ms

Then eventually I should see "11K+" within 10 seconds 1ms

And I should see "Communities Served" 2ms

@check @acceptance @local @development @staging @production @impact
Scenario Outline:Verify the Impact by Programme section reports Households farming independently
6

Given I am an anonymous user 673ms

When I go to "/impact" 5s 298ms

And I wait until the page is loaded 3ms

Then "h2" should contain text "Impact by Programme" within 10 seconds 1ms

And eventually I should see "12K" within 10 seconds 1ms

And I should see "Households farming independently" 2ms

Given I am an anonymous user 670ms

When I go to "/impact" 5s 300ms

And I wait until the page is loaded 3ms

Then "h2" should contain text "Impact by Programme" within 10 seconds 1ms

And eventually I should see "8K+" within 10 seconds 1ms

And I should see "Children enrolled in safe learning spaces" 2ms

Given I am an anonymous user 675ms

When I go to "/impact" 5s 304ms

And I wait until the page is loaded 4ms

Then "h2" should contain text "Impact by Programme" within 10 seconds 1ms

And eventually I should see "3.2K" within 10 seconds 1ms

And I should see "Women supported through legal defence" 2ms

@check @acceptance @local @development @staging @production @impact
Scenario Outline:Verify the Impact by Programme section reports Clinics built or rehabilitated
6

Given I am an anonymous user 676ms

When I go to "/impact" 4s 554ms

And I wait until the page is loaded 4ms

Then "h2" should contain text "Impact by Programme" within 10 seconds 1ms

And eventually I should see "58" within 10 seconds 5ms

And I should see "Clinics built or rehabilitated" 2ms

Given I am an anonymous user 676ms

When I go to "/impact" 5s 302ms

And I wait until the page is loaded 3ms

Then "h2" should contain text "Impact by Programme" within 10 seconds 1ms

And eventually I should see "420" within 10 seconds 1ms

And I should see "Tonnes of medical supplies delivered" 2ms

@check @regression @local @development @staging @production @impact
Scenario:Check every impact figure on the page is a bound counter
5

Given I am an anonymous user 674ms

When I go to "/impact" 5s 305ms

And I wait until the page is loaded 3ms

Then "[data-component-id='vartheme_bs5_horizonaid:figure']" should have a count of 8 within 10 seconds 1ms

And "[data-component-id='vartheme_bs5_horizonaid:figure'] [data-count-target]" should have a count of 8 within 10 seconds 1ms

@check @regression @local @development @staging @production @impact
Scenario:Verify the Our Impact page sends the reader on to where the work happens
7

Given I am an anonymous user 678ms

When I go to "/impact" 5s 302ms

And I wait until the page is loaded 3ms

Then the link "See Where We Work" with the href "/countries" should exist 1ms

When I click the "See Where We Work" link 1s 773ms

And I wait until the page is loaded 9s 344ms

Then the path should be "/countries" < 1ms

@check @exploratory @local @development @staging @production @impact
Scenario:Check the impact figures still count up on a phone
7

Given I am an anonymous user 675ms

When I set the viewport to the "xs" breakpoint 11ms

And I go to "/impact" 5s 296ms

And I wait until the page is loaded 4ms

Then "h1" should contain text "Our Impact" within 10 seconds 1ms

And eventually I should see "20K+" within 10 seconds 1ms

And I should see "Lives Protected" 2ms

As a visitor who has decided to give
I want the Donate call to action to be reachable from anywhere and to land on a real page
So that my intent to donate is never lost.

@check @critical @acceptance @slow @local @development @staging @production @donate
Scenario:Check the Donate page renders its heading and its invitation
9

Given I am an anonymous user 676ms

When I go to "/donate" 5s 523ms

And I wait until the page is loaded 118ms

Then I should see "Donate" in the "main" element 30s 6ms

And I should see "For over two decades" 2ms

And I should see "communities too often overlooked" 1ms

And "nav[aria-label='breadcrumb']" should be visible within 10 seconds 1ms

And I should not see "The website encountered an unexpected error" 1ms

And I should not see "Page not found" 1ms

@check @critical @acceptance @slow @local @development @staging @production @donate
Scenario:Verify the header donate call to action takes a visitor to the Donate page
8

Given I am an anonymous user 678ms

When I go to "/impact" 5s 303ms

And I wait until the page is loaded 4ms

Then the link "Donate" with the href "/donate" within the element "header[role='banner']" should exist 2ms

When I click on the element "header[role='banner'] a.nav-link--cta" 670ms

And I wait until the page is loaded 3ms

Then the path should be "/donate" < 1ms

And I should see "Donate" in the "main" element 30s 4ms

@check @regression @local @development @staging @production @donate
Scenario Outline:Check the donate call to action is in the header on the home page
4

Given I am an anonymous user 674ms

When I go to "/" 645ms

And I wait until the page is loaded 2ms

Then the link "Donate" with the href "/donate" within the element "header[role='banner']" should exist 1ms

@check @regression @local @development @staging @production @donate
Scenario Outline:Check the donate call to action is in the header on the about page
4

Given I am an anonymous user 673ms

When I go to "/about" 9s 663ms

And I wait until the page is loaded 3ms

Then the link "Donate" with the href "/donate" within the element "header[role='banner']" should exist 2ms

@check @regression @local @development @staging @production @donate
Scenario Outline:Check the donate call to action is in the header on the countries page
4

Given I am an anonymous user 678ms

When I go to "/countries" 5s 420ms

And I wait until the page is loaded 3ms

Then the link "Donate" with the href "/donate" within the element "header[role='banner']" should exist 1ms

@check @regression @local @development @staging @production @donate
Scenario Outline:Check the donate call to action is in the header on the programs page
4

Given I am an anonymous user 673ms

When I go to "/programs" 9s 668ms

And I wait until the page is loaded 3ms

Then the link "Donate" with the href "/donate" within the element "header[role='banner']" should exist 1ms

@check @regression @local @development @staging @production @donate
Scenario Outline:Check the donate call to action is in the header on the resources page
4

Given I am an anonymous user 674ms

When I go to "/resources" 5s 775ms

And I wait until the page is loaded 407ms

Then the link "Donate" with the href "/donate" within the element "header[role='banner']" should exist 1ms

@check @regression @local @development @staging @production @donate
Scenario Outline:Check the donate call to action is in the header on the events page
4

Given I am an anonymous user 672ms

When I go to "/events" 5s 862ms

And I wait until the page is loaded 2ms

Then the link "Donate" with the href "/donate" within the element "header[role='banner']" should exist 1ms

@check @regression @local @development @staging @production @donate
Scenario Outline:Check the donate call to action is in the header on the impact page
4

Given I am an anonymous user 674ms

When I go to "/impact" 5s 302ms

And I wait until the page is loaded 3ms

Then the link "Donate" with the href "/donate" within the element "header[role='banner']" should exist 1ms

@check @regression @fast @local @development @staging @production @donate
Scenario:Check the Donate page banner image renders with alternative text
5

Given I am an anonymous user 674ms

When I go to "/donate" 654ms

And I wait until the page is loaded 2ms

Then "main img" should be visible within 10 seconds 1ms

And every image should have an alt attribute 2ms

@check @exploratory @slow @local @development @staging @production @donate
Scenario:Verify the donate call to action survives the collapsed navigation on a phone
9

Given I am an anonymous user 671ms

When I set the viewport to the "xs" breakpoint 11ms

And I go to "/" 675ms

And I wait until the page is loaded 3ms

Then the link "Donate" with the href "/donate" within the element "header[role='banner']" should exist 1ms

When I go to "/donate" 704ms

And I wait until the page is loaded 3ms

Then I should see "Donate" in the "main" element 30s 5ms

And I should see "For over two decades" 1ms

As a visitor using assistive technology
I want every Horizon Aid page to be free of serious accessibility issues
So that a disability never stands between me and the aid information I came for.

@check @a11y @acceptance @local @development @staging @production
Scenario Outline:Check the Home page has no serious accessibility violations
4

Given I am an anonymous user 2s 641ms

When I go to "/" 651ms

And I wait until the page is loaded 3ms

Then the page should have no serious accessibility violations 1s 7ms

@check @a11y @acceptance @local @development @staging @production
Scenario Outline:Check the About page has no serious accessibility violations
4

Given I am an anonymous user 674ms

When I go to "/about" 11s 212ms

And I wait until the page is loaded 4ms

Then the page should have no serious accessibility violations 978ms

@check @a11y @acceptance @local @development @staging @production
Scenario Outline:Check the Kenya country page has no serious accessibility violations
4

Given I am an anonymous user 675ms

When I go to "/countries/kenya" 5s 882ms

And I wait until the page is loaded 411ms

Then the page should have no serious accessibility violations 876ms

@check @a11y @acceptance @local @development @staging @production
Scenario Outline:Check the Programs page has no serious accessibility violations
4

Given I am an anonymous user 675ms

When I go to "/programs" 14s 403ms

And I wait until the page is loaded 4ms

Then the page should have no serious accessibility violations 871ms

@check @a11y @acceptance @local @development @staging @production
Scenario Outline:Check the Health program page has no serious accessibility violations
4

Given I am an anonymous user 676ms

When I go to "/programs/health" 1s 458ms

And I wait until the page is loaded 3ms

Then the page should have no serious accessibility violations 889ms

@check @a11y @acceptance @local @development @staging @production
Scenario Outline:Check the Resources page has no serious accessibility violations
4

Given I am an anonymous user 675ms

When I go to "/resources" 6s 301ms

And I wait until the page is loaded 3ms

Then the page should have no serious accessibility violations 986ms

@check @a11y @acceptance @local @development @staging @production
Scenario Outline:Check the Resource article page has no serious accessibility violations
4

Given I am an anonymous user 671ms

When I go to "/resources/2026-regional-human-rights-index" 6s 561ms

And I wait until the page is loaded 2ms

Then the page should have no serious accessibility violations 866ms

@check @a11y @acceptance @local @development @staging @production
Scenario Outline:Check the Events page has no serious accessibility violations
4

Given I am an anonymous user 676ms

When I go to "/events" 5s 600ms

And I wait until the page is loaded 129ms

Then the page should have no serious accessibility violations 879ms

@check @a11y @acceptance @local @development @staging @production
Scenario Outline:Check the Event page has no serious accessibility violations
4

Given I am an anonymous user 675ms

When I go to "/events/annual-fundraising-gala" 1s 268ms

And I wait until the page is loaded 2ms

Then the page should have no serious accessibility violations 780ms

@check @a11y @acceptance @local @development @staging @production
Scenario Outline:Check the Impact page has no serious accessibility violations
4

Given I am an anonymous user 671ms

When I go to "/impact" 10s 419ms

And I wait until the page is loaded 3ms

Then the page should have no serious accessibility violations 716ms

@check @a11y @acceptance @local @development @staging @production
Scenario Outline:Check the Donate page has no serious accessibility violations
4

Given I am an anonymous user 670ms

When I go to "/donate" 5s 780ms

And I wait until the page is loaded 3ms

Then the page should have no serious accessibility violations 680ms

@check @a11y @acceptance @local @development @staging @production
Scenario Outline:Check the Newsletter page has no serious accessibility violations
4

Given I am an anonymous user 674ms

When I go to "/newsletter" 5s 628ms

And I wait until the page is loaded 405ms

Then the page should have no serious accessibility violations 729ms

@check @a11y @acceptance @local @development @staging @production
Scenario Outline:Check the Search page has no serious accessibility violations
4

Given I am an anonymous user 671ms

When I go to "/search" 5s 538ms

And I wait until the page is loaded 412ms

Then the page should have no serious accessibility violations 672ms

@check @a11y @acceptance @local @development @staging @production
Scenario Outline:Check the Terms and Conditions page has no serious accessibility violations
4

Given I am an anonymous user 673ms

When I go to "/terms-and-conditions" 668ms

And I wait until the page is loaded 2ms

Then the page should have no serious accessibility violations 662ms

@check @a11y @acceptance @local @development @staging @production
Scenario Outline:Check the Login page has no serious accessibility violations
4

Given I am an anonymous user 671ms

When I go to "/user/login" 15s 821ms

And I wait until the page is loaded 4ms

Then the page should have no serious accessibility violations 597ms

@check @a11y @acceptance @local @development @staging @production
Scenario Outline:Check the Not found page has no serious accessibility violations
4

Given I am an anonymous user 683ms

When I go to "/this-page-does-not-exist" 636ms

And I wait until the page is loaded 2ms

Then the page should have no serious accessibility violations 663ms

@check @a11y @acceptance @local @development @staging @production @slow
Scenario Outline:Check the Countries page has no serious accessibility violations
4

Given I am an anonymous user 671ms

When I go to "/countries" 10s 808ms

And I wait until the page is loaded 3ms

Then the page should have no serious accessibility violations 985ms

@check @a11y @acceptance @local @development @staging @production
Scenario Outline:Check the Home page passes the full accessibility check
4

Given I am an anonymous user 673ms

When I go to "/" 645ms

And I wait until the page is loaded 2ms

Then the page should pass the full accessibility check 831ms

@check @a11y @acceptance @local @development @staging @production
Scenario Outline:Check the Kenya country page passes the full accessibility check
4

Given I am an anonymous user 672ms

When I go to "/countries/kenya" 656ms

And I wait until the page is loaded 4ms

Then the page should pass the full accessibility check 715ms

@check @a11y @acceptance @local @development @staging @production
Scenario Outline:Check the Health program page passes the full accessibility check
4

Given I am an anonymous user 673ms

When I go to "/programs/health" 682ms

And I wait until the page is loaded 2ms

Then the page should pass the full accessibility check 724ms

@check @a11y @acceptance @local @development @staging @production
Scenario Outline:Check the Resources page passes the full accessibility check
4

Given I am an anonymous user 669ms

When I go to "/resources" 659ms

And I wait until the page is loaded 2ms

Then the page should pass the full accessibility check 859ms

@check @a11y @acceptance @local @development @staging @production
Scenario Outline:Check the Resource article page passes the full accessibility check
4

Given I am an anonymous user 673ms

When I go to "/resources/2026-regional-human-rights-index" 655ms

And I wait until the page is loaded 4ms

Then the page should pass the full accessibility check 749ms

@check @a11y @acceptance @local @development @staging @production
Scenario Outline:Check the Events page passes the full accessibility check
4

Given I am an anonymous user 670ms

When I go to "/events" 656ms

And I wait until the page is loaded 2ms

Then the page should pass the full accessibility check 774ms

@check @a11y @acceptance @local @development @staging @production
Scenario Outline:Check the Event page passes the full accessibility check
4

Given I am an anonymous user 672ms

When I go to "/events/annual-fundraising-gala" 551ms

And I wait until the page is loaded 2ms

Then the page should pass the full accessibility check 705ms

@check @a11y @acceptance @local @development @staging @production
Scenario Outline:Check the Donate page passes the full accessibility check
4

Given I am an anonymous user 673ms

When I go to "/donate" 656ms

And I wait until the page is loaded 2ms

Then the page should pass the full accessibility check 623ms

@check @a11y @acceptance @local @development @staging @production
Scenario Outline:Check the Search page passes the full accessibility check
4

Given I am an anonymous user 674ms

When I go to "/search" 549ms

And I wait until the page is loaded 2ms

Then the page should pass the full accessibility check 618ms

@check @a11y @regression @local @development @staging @production
Scenario Outline:Check the Home page satisfies the accessibility rule "color-contrast"
4

Given I am an anonymous user 668ms

When I go to "/" 645ms

And I wait until the page is loaded 2ms

Then the page should not violate the accessibility rule "color-contrast" 988ms

@check @a11y @regression @local @development @staging @production
Scenario Outline:Check the Home page satisfies the accessibility rule "image-alt"
4

Given I am an anonymous user 670ms

When I go to "/" 644ms

And I wait until the page is loaded 2ms

Then the page should not violate the accessibility rule "image-alt" 985ms

@check @a11y @regression @local @development @staging @production
Scenario Outline:Check the Home page satisfies the accessibility rule "html-has-lang"
4

Given I am an anonymous user 669ms

When I go to "/" 645ms

And I wait until the page is loaded 2ms

Then the page should not violate the accessibility rule "html-has-lang" 985ms

@check @a11y @regression @local @development @staging @production
Scenario Outline:Check the Home page satisfies the accessibility rule "page-has-heading-one"
4

Given I am an anonymous user 670ms

When I go to "/" 643ms

And I wait until the page is loaded 2ms

Then the page should not violate the accessibility rule "page-has-heading-one" 982ms

@check @a11y @regression @local @development @staging @production
Scenario Outline:Check the Home page satisfies the accessibility rule "link-name"
4

Given I am an anonymous user 675ms

When I go to "/" 645ms

And I wait until the page is loaded 2ms

Then the page should not violate the accessibility rule "link-name" 984ms

@check @a11y @regression @local @development @staging @production
Scenario Outline:Check the Home page satisfies the accessibility rule "button-name"
4

Given I am an anonymous user 673ms

When I go to "/" 645ms

And I wait until the page is loaded 2ms

Then the page should not violate the accessibility rule "button-name" 985ms

@check @a11y @regression @local @development @staging @production
Scenario Outline:Check the Home page satisfies the accessibility rule "duplicate-id-aria"
4

Given I am an anonymous user 671ms

When I go to "/" 646ms

And I wait until the page is loaded 2ms

Then the page should not violate the accessibility rule "duplicate-id-aria" 985ms

@check @a11y @regression @local @development @staging @production
Scenario Outline:Check the About page satisfies the accessibility rule "color-contrast"
4

Given I am an anonymous user 668ms

When I go to "/about" 654ms

And I wait until the page is loaded 4ms

Then the page should not violate the accessibility rule "color-contrast" 919ms

@check @a11y @regression @local @development @staging @production
Scenario Outline:Check the Kenya country page satisfies the accessibility rule "image-alt"
4

Given I am an anonymous user 675ms

When I go to "/countries/kenya" 658ms

And I wait until the page is loaded 3ms

Then the page should not violate the accessibility rule "image-alt" 849ms

@check @a11y @regression @local @development @staging @production
Scenario Outline:Check the Countries page satisfies the accessibility rule "color-contrast"
4

Given I am an anonymous user 669ms

When I go to "/countries" 5s 417ms

And I wait until the page is loaded 3ms

Then the page should not violate the accessibility rule "color-contrast" 981ms

@check @a11y @regression @local @development @staging @production
Scenario Outline:Check the Programs page satisfies the accessibility rule "color-contrast"
4

Given I am an anonymous user 670ms

When I go to "/programs" 653ms

And I wait until the page is loaded 2ms

Then the page should not violate the accessibility rule "color-contrast" 815ms

Given I am an anonymous user 671ms

When I go to "/programs/health" 659ms

And I wait until the page is loaded 2ms

Then the page should not violate the accessibility rule "color-contrast" 868ms

@check @a11y @regression @local @development @staging @production
Scenario Outline:Check the Resources page satisfies the accessibility rule "color-contrast"
4

Given I am an anonymous user 674ms

When I go to "/resources" 661ms

And I wait until the page is loaded 2ms

Then the page should not violate the accessibility rule "color-contrast" 975ms

@check @a11y @regression @local @development @staging @production
Scenario Outline:Check the Resources page satisfies the accessibility rule "label"
4

Given I am an anonymous user 672ms

When I go to "/resources" 663ms

And I wait until the page is loaded 2ms

Then the page should not violate the accessibility rule "label" 980ms

@check @a11y @regression @local @development @staging @production
Scenario Outline:Check the Resource article page satisfies the accessibility rule "image-alt"
4

Given I am an anonymous user 668ms

When I go to "/resources/2026-regional-human-rights-index" 654ms

And I wait until the page is loaded 2ms

Then the page should not violate the accessibility rule "image-alt" 830ms

@check @a11y @regression @local @development @staging @production
Scenario Outline:Check the Events page satisfies the accessibility rule "color-contrast"
4

Given I am an anonymous user 669ms

When I go to "/events" 655ms

And I wait until the page is loaded 2ms

Then the page should not violate the accessibility rule "color-contrast" 874ms

@check @a11y @regression @local @development @staging @production
Scenario Outline:Check the Events page satisfies the accessibility rule "label"
4

Given I am an anonymous user 672ms

When I go to "/events" 654ms

And I wait until the page is loaded 2ms

Then the page should not violate the accessibility rule "label" 868ms

@check @a11y @regression @local @development @staging @production
Scenario Outline:Check the Donate page satisfies the accessibility rule "color-contrast"
4

Given I am an anonymous user 669ms

When I go to "/donate" 654ms

And I wait until the page is loaded 2ms

Then the page should not violate the accessibility rule "color-contrast" 661ms

@check @a11y @regression @local @development @staging @production
Scenario Outline:Check the Newsletter page satisfies the accessibility rule "label"
4

Given I am an anonymous user 673ms

When I go to "/newsletter" 653ms

And I wait until the page is loaded 2ms

Then the page should not violate the accessibility rule "label" 698ms

@check @a11y @regression @local @development @staging @production
Scenario Outline:Check the Search page satisfies the accessibility rule "label"
4

Given I am an anonymous user 673ms

When I go to "/search" 548ms

And I wait until the page is loaded 2ms

Then the page should not violate the accessibility rule "label" 657ms

@check @a11y @regression @local @development @staging @production
Scenario Outline:Check the Login page satisfies the accessibility rule "label"
4

Given I am an anonymous user 669ms

When I go to "/user/login" 553ms

And I wait until the page is loaded 2ms

Then the page should not violate the accessibility rule "label" 589ms

@check @a11y @regression @local @development @staging @production
Scenario:Check the Home page links and buttons meet the minimum target size
4

Given I am an anonymous user 672ms

When I go to "/" 644ms

And I wait until the page is loaded 4ms

Then the page should not violate the accessibility rule "target-size" 1s 16ms

@check @a11y @regression @local @development @staging @production
Scenario:Check each navigation landmark on the Home page is distinguishable
4

Given I am an anonymous user 670ms

When I go to "/" 645ms

And I wait until the page is loaded 2ms

Then the page should not violate the accessibility rule "landmark-unique" 989ms

@check @a11y @regression @local @development @staging @production
Scenario:Check the Home page has a single main landmark
4

Given I am an anonymous user 674ms

When I go to "/" 647ms

And I wait until the page is loaded 2ms

Then the page should not violate the accessibility rule "landmark-one-main" 977ms

@check @a11y @regression @local @development @staging @production
Scenario:Check the Home page headings descend without skipping a level
4

Given I am an anonymous user 671ms

When I go to "/" 645ms

And I wait until the page is loaded 2ms

Then the page should not violate the accessibility rule "heading-order" 983ms

@check @a11y @regression @slow @local @development @staging @production
Scenario:Verify the Our Impact headline figures are readable against their background
9

Given I am an anonymous user 670ms

When I go to "/impact" 5s 303ms

And I wait until the page is loaded 3ms

Then the page should have no serious accessibility violations 780ms

And the page should pass the accessibility rules "image-alt, input-image-alt" 611ms

And the page should pass the accessibility rules "label, form-field-multiple-labels" 609ms

And the page should pass the accessibility rules "button-name, link-name" 606ms

And the page should pass the accessibility rules "aria-valid-attr, aria-valid-attr-value, aria-roles" 604ms

And the page should not violate the accessibility rule "color-contrast" 608ms

@check @a11y @regression @local @development @staging @production
Scenario Outline:Check the Home page stays accessible on a phone
9

Given I am an anonymous user 673ms

When I set the viewport to the "xs" breakpoint 11ms

And I go to "/" 677ms

And I wait until the page is loaded 2ms

Then the page should have no serious accessibility violations 965ms

And every button should have an accessible name 2ms

And every link should have an accessible name 1ms

And every image should have an alt attribute 1ms

And user zoom should be allowed 1ms

@check @a11y @regression @local @development @staging @production
Scenario Outline:Check the About page stays accessible on a phone
9

Given I am an anonymous user 671ms

When I set the viewport to the "xs" breakpoint 11ms

And I go to "/about" 687ms

And I wait until the page is loaded 2ms

Then the page should have no serious accessibility violations 903ms

And every button should have an accessible name 2ms

And every link should have an accessible name 1ms

And every image should have an alt attribute < 1ms

And user zoom should be allowed < 1ms

@check @a11y @regression @local @development @staging @production
Scenario Outline:Check the Countries page stays accessible on a phone
9

Given I am an anonymous user 673ms

When I set the viewport to the "xs" breakpoint 11ms

And I go to "/countries" 707ms

And I wait until the page is loaded 2ms

Then the page should have no serious accessibility violations 963ms

And every button should have an accessible name 2ms

And every link should have an accessible name 1ms

And every image should have an alt attribute 1ms

And user zoom should be allowed 1ms

@check @a11y @regression @local @development @staging @production
Scenario Outline:Check the Programs page stays accessible on a phone
9

Given I am an anonymous user 672ms

When I set the viewport to the "xs" breakpoint 9ms

And I go to "/programs" 693ms

And I wait until the page is loaded 2ms

Then the page should have no serious accessibility violations 802ms

And every button should have an accessible name 2ms

And every link should have an accessible name 1ms

And every image should have an alt attribute 1ms

And user zoom should be allowed 1ms

@check @a11y @regression @local @development @staging @production
Scenario Outline:Check the Resources page stays accessible on a phone
9

Given I am an anonymous user 672ms

When I set the viewport to the "xs" breakpoint 11ms

And I go to "/resources" 701ms

And I wait until the page is loaded 2ms

Then the page should have no serious accessibility violations 984ms

And every button should have an accessible name 3ms

And every link should have an accessible name 1ms

And every image should have an alt attribute 1ms

And user zoom should be allowed < 1ms

@check @a11y @regression @local @development @staging @production
Scenario Outline:Check the Events page stays accessible on a phone
9

Given I am an anonymous user 670ms

When I set the viewport to the "xs" breakpoint 11ms

And I go to "/events" 683ms

And I wait until the page is loaded 2ms

Then the page should have no serious accessibility violations 856ms

And every button should have an accessible name 2ms

And every link should have an accessible name 1ms

And every image should have an alt attribute < 1ms

And user zoom should be allowed < 1ms

@check @a11y @regression @local @development @staging @production
Scenario Outline:Check the Impact page stays accessible on a phone
9

Given I am an anonymous user 672ms

When I set the viewport to the "xs" breakpoint 11ms

And I go to "/impact" 5s 296ms

And I wait until the page is loaded 3ms

Then the page should have no serious accessibility violations 698ms

And every button should have an accessible name 2ms

And every link should have an accessible name < 1ms

And every image should have an alt attribute < 1ms

And user zoom should be allowed < 1ms

@check @a11y @regression @local @development @staging @production
Scenario Outline:Check the Donate page stays accessible on a phone
9

Given I am an anonymous user 675ms

When I set the viewport to the "xs" breakpoint 11ms

And I go to "/donate" 661ms

And I wait until the page is loaded 2ms

Then the page should have no serious accessibility violations 659ms

And every button should have an accessible name 1ms

And every link should have an accessible name < 1ms

And every image should have an alt attribute < 1ms

And user zoom should be allowed < 1ms

As a site owner
I want every Horizon Aid page to load within a budget
So that a regression in page weight, image derivatives or query count is caught the day it lands.

@check @perf @regression @local @development @staging @production
Scenario Outline:Check the Home page loads within the repeat-visit budget
7

Given I am an anonymous user 673ms

When I go to "/" 646ms

And I wait until the page is loaded 2ms

And I reload the page 651ms

And I wait until the page is loaded 3ms

Then the page should load in less than 8 seconds 1ms

And I should see "Donate" 5ms

@check @perf @regression @local @development @staging @production
Scenario Outline:Check the About page loads within the repeat-visit budget
7

Given I am an anonymous user 674ms

When I go to "/about" 656ms

And I wait until the page is loaded 2ms

And I reload the page 648ms

And I wait until the page is loaded 2ms

Then the page should load in less than 8 seconds < 1ms

And I should see "About" 4ms

@check @perf @regression @local @development @staging @production
Scenario Outline:Check the Impact page loads within the repeat-visit budget
7

Given I am an anonymous user 672ms

When I go to "/impact" 5s 300ms

And I wait until the page is loaded 3ms

And I reload the page 1s 290ms

And I wait until the page is loaded 5s 5ms

Then the page should load in less than 8 seconds < 1ms

And I should see "Lives Protected" 2ms

@check @perf @regression @local @development @staging @production
Scenario Outline:Check the Donate page loads within the repeat-visit budget
7

Given I am an anonymous user 669ms

When I go to "/donate" 648ms

And I wait until the page is loaded 3ms

And I reload the page 651ms

And I wait until the page is loaded 2ms

Then the page should load in less than 8 seconds < 1ms

And I should see "For over two decades" 2ms

@check @perf @regression @local @development @staging @production
Scenario Outline:Check the Countries page loads within the repeat-visit budget
7

Given I am an anonymous user 669ms

When I go to "/countries" 5s 415ms

And I wait until the page is loaded 3ms

And I reload the page 1s 420ms

And I wait until the page is loaded 5s 4ms

Then the page should load in less than 8 seconds 1ms

And I should see "Countries" 4ms

@check @perf @regression @local @development @staging @production
Scenario Outline:Check the Programs page loads within the repeat-visit budget
7

Given I am an anonymous user 673ms

When I go to "/programs" 653ms

And I wait until the page is loaded 3ms

And I reload the page 640ms

And I wait until the page is loaded 3ms

Then the page should load in less than 8 seconds < 1ms

And I should see "Programs" 3ms

@check @perf @regression @local @development @staging @production
Scenario Outline:Check the Resources page loads within the repeat-visit budget
7

Given I am an anonymous user 675ms

When I go to "/resources" 666ms

And I wait until the page is loaded 2ms

And I reload the page 658ms

And I wait until the page is loaded 2ms

Then the page should load in less than 8 seconds 1ms

And I should see "Resources" 3ms

@check @perf @regression @local @development @staging @production
Scenario Outline:Check the Events page loads within the repeat-visit budget
7

Given I am an anonymous user 667ms

When I go to "/events" 654ms

And I wait until the page is loaded 2ms

And I reload the page 644ms

And I wait until the page is loaded 2ms

Then the page should load in less than 8 seconds < 1ms

And I should see "Events" 3ms

@check @perf @acceptance @local @development @staging @production
Scenario Outline:Check the Home page first visit stays within the cold-cache budget
5

Given I am an anonymous user 669ms

When I go to "/" 658ms

And I wait until the page is loaded 2ms

Then the page should load in less than 20 seconds < 1ms

And I should see "Donate" 4ms

@check @perf @acceptance @local @development @staging @production
Scenario Outline:Check the Countries page first visit stays within the cold-cache budget
5

Given I am an anonymous user 669ms

When I go to "/countries" 5s 412ms

And I wait until the page is loaded 3ms

Then the page should load in less than 20 seconds < 1ms

And I should see "Countries" 4ms

@check @perf @acceptance @local @development @staging @production
Scenario Outline:Check the Programs page first visit stays within the cold-cache budget
5

Given I am an anonymous user 674ms

When I go to "/programs" 653ms

And I wait until the page is loaded 2ms

Then the page should load in less than 20 seconds < 1ms

And I should see "Programs" 2ms

@check @perf @acceptance @local @development @staging @production
Scenario Outline:Check the Impact page first visit stays within the cold-cache budget
5

Given I am an anonymous user 673ms

When I go to "/impact" 5s 303ms

And I wait until the page is loaded 4ms

Then the page should load in less than 20 seconds 1ms

And I should see "Lives Protected" 2ms

@check @perf @acceptance @local @development @staging @production
Scenario Outline:Check the Donate page first visit stays within the cold-cache budget
5

Given I am an anonymous user 674ms

When I go to "/donate" 648ms

And I wait until the page is loaded 2ms

Then the page should load in less than 20 seconds < 1ms

And I should see "For over two decades" 1ms

@check @perf @exploratory @local @development @staging @production
Scenario Outline:Check the Home page loads within the repeat-visit budget on a phone
8

Given I am an anonymous user 671ms

When I set the viewport to the "xs" breakpoint 11ms

And I go to "/" 654ms

And I wait until the page is loaded 2ms

And I reload the page 654ms

And I wait until the page is loaded 2ms

Then the page should load in less than 8 seconds < 1ms

And I should see "Donate" 6ms

@check @perf @exploratory @local @development @staging @production
Scenario Outline:Check the Donate page loads within the repeat-visit budget on a phone
8

Given I am an anonymous user 669ms

When I set the viewport to the "xs" breakpoint 12ms

And I go to "/donate" 658ms

And I wait until the page is loaded 2ms

And I reload the page 653ms

And I wait until the page is loaded 2ms

Then the page should load in less than 8 seconds < 1ms

And I should see "For over two decades" 5ms

@check @perf @exploratory @local @development @staging @production @slow
Scenario Outline:Check the Impact page loads within the repeat-visit budget on a phone
8

Given I am an anonymous user 675ms

When I set the viewport to the "xs" breakpoint 12ms

And I go to "/impact" 5s 291ms

And I wait until the page is loaded 2ms

And I reload the page 1s 291ms

And I wait until the page is loaded 5s 4ms

Then the page should load in less than 8 seconds 1ms

And I should see "Lives Protected" 6ms

As a keyboard and screen reader user
I want every Horizon Aid page type to carry a sound document structure
So that I can skip to the content, follow the headings and reach every control.

@check @a11y @acceptance @local @development @staging @production @fast
Scenario Outline:Check the Home page carries a sound document structure
11

Given I am an anonymous user 674ms

When I go to "/" 645ms

And I wait until the page is loaded 2ms

Then the page should have a title 2ms

And the page should declare a language 1ms

And the page should have exactly one h1 1ms

And the heading hierarchy should be valid 2ms

And the page should have a main landmark 1ms

And the page should have a navigation landmark 1ms

And the page should have a skip link < 1ms

And user zoom should be allowed < 1ms

@check @a11y @acceptance @local @development @staging @production @fast
Scenario Outline:Check the About page carries a sound document structure
11

Given I am an anonymous user 671ms

When I go to "/about" 657ms

And I wait until the page is loaded 2ms

Then the page should have a title 2ms

And the page should declare a language 1ms

And the page should have exactly one h1 1ms

And the heading hierarchy should be valid < 1ms

And the page should have a main landmark < 1ms

And the page should have a navigation landmark < 1ms

And the page should have a skip link < 1ms

And user zoom should be allowed 1ms

@check @a11y @acceptance @local @development @staging @production @fast
Scenario Outline:Check the Kenya country page carries a sound document structure
11

Given I am an anonymous user 671ms

When I go to "/countries/kenya" 657ms

And I wait until the page is loaded 2ms

Then the page should have a title 2ms

And the page should declare a language < 1ms

And the page should have exactly one h1 < 1ms

And the heading hierarchy should be valid < 1ms

And the page should have a main landmark < 1ms

And the page should have a navigation landmark < 1ms

And the page should have a skip link < 1ms

And user zoom should be allowed < 1ms

@check @a11y @acceptance @local @development @staging @production @fast
Scenario Outline:Check the Programs page carries a sound document structure
11

Given I am an anonymous user 668ms

When I go to "/programs" 653ms

And I wait until the page is loaded 2ms

Then the page should have a title 2ms

And the page should declare a language < 1ms

And the page should have exactly one h1 < 1ms

And the heading hierarchy should be valid < 1ms

And the page should have a main landmark < 1ms

And the page should have a navigation landmark < 1ms

And the page should have a skip link < 1ms

And user zoom should be allowed < 1ms

@check @a11y @acceptance @local @development @staging @production @fast
Scenario Outline:Check the Health program page carries a sound document structure
11

Given I am an anonymous user 677ms

When I go to "/programs/health" 661ms

And I wait until the page is loaded 2ms

Then the page should have a title 2ms

And the page should declare a language 1ms

And the page should have exactly one h1 < 1ms

And the heading hierarchy should be valid 1ms

And the page should have a main landmark < 1ms

And the page should have a navigation landmark < 1ms

And the page should have a skip link < 1ms

And user zoom should be allowed < 1ms

@check @a11y @acceptance @local @development @staging @production @fast
Scenario Outline:Check the Resources page carries a sound document structure
11

Given I am an anonymous user 672ms

When I go to "/resources" 659ms

And I wait until the page is loaded 2ms

Then the page should have a title 2ms

And the page should declare a language 1ms

And the page should have exactly one h1 2ms

And the heading hierarchy should be valid < 1ms

And the page should have a main landmark < 1ms

And the page should have a navigation landmark < 1ms

And the page should have a skip link < 1ms

And user zoom should be allowed < 1ms

@check @a11y @acceptance @local @development @staging @production @fast
Scenario Outline:Check the Resource article page carries a sound document structure
11

Given I am an anonymous user 672ms

When I go to "/resources/2026-regional-human-rights-index" 657ms

And I wait until the page is loaded 2ms

Then the page should have a title 2ms

And the page should declare a language 1ms

And the page should have exactly one h1 < 1ms

And the heading hierarchy should be valid < 1ms

And the page should have a main landmark < 1ms

And the page should have a navigation landmark < 1ms

And the page should have a skip link < 1ms

And user zoom should be allowed < 1ms

@check @a11y @acceptance @local @development @staging @production @fast
Scenario Outline:Check the Events page carries a sound document structure
11

Given I am an anonymous user 667ms

When I go to "/events" 655ms

And I wait until the page is loaded 2ms

Then the page should have a title 2ms

And the page should declare a language < 1ms

And the page should have exactly one h1 < 1ms

And the heading hierarchy should be valid < 1ms

And the page should have a main landmark < 1ms

And the page should have a navigation landmark < 1ms

And the page should have a skip link < 1ms

And user zoom should be allowed < 1ms

@check @a11y @acceptance @local @development @staging @production @fast
Scenario Outline:Check the Event page carries a sound document structure
11

Given I am an anonymous user 672ms

When I go to "/events/annual-fundraising-gala" 556ms

And I wait until the page is loaded 2ms

Then the page should have a title 2ms

And the page should declare a language < 1ms

And the page should have exactly one h1 < 1ms

And the heading hierarchy should be valid < 1ms

And the page should have a main landmark < 1ms

And the page should have a navigation landmark < 1ms

And the page should have a skip link < 1ms

And user zoom should be allowed < 1ms

@check @a11y @acceptance @local @development @staging @production @fast
Scenario Outline:Check the Donate page carries a sound document structure
11

Given I am an anonymous user 674ms

When I go to "/donate" 657ms

And I wait until the page is loaded 2ms

Then the page should have a title 2ms

And the page should declare a language < 1ms

And the page should have exactly one h1 < 1ms

And the heading hierarchy should be valid < 1ms

And the page should have a main landmark < 1ms

And the page should have a navigation landmark < 1ms

And the page should have a skip link < 1ms

And user zoom should be allowed < 1ms

@check @a11y @acceptance @local @development @staging @production @fast
Scenario Outline:Check the Newsletter page carries a sound document structure
11

Given I am an anonymous user 673ms

When I go to "/newsletter" 653ms

And I wait until the page is loaded 2ms

Then the page should have a title 1ms

And the page should declare a language < 1ms

And the page should have exactly one h1 < 1ms

And the heading hierarchy should be valid < 1ms

And the page should have a main landmark < 1ms

And the page should have a navigation landmark < 1ms

And the page should have a skip link < 1ms

And user zoom should be allowed < 1ms

@check @a11y @acceptance @local @development @staging @production @fast
Scenario Outline:Check the Search page carries a sound document structure
11

Given I am an anonymous user 669ms

When I go to "/search" 555ms

And I wait until the page is loaded 2ms

Then the page should have a title 1ms

And the page should declare a language < 1ms

And the page should have exactly one h1 < 1ms

And the heading hierarchy should be valid < 1ms

And the page should have a main landmark < 1ms

And the page should have a navigation landmark < 1ms

And the page should have a skip link < 1ms

And user zoom should be allowed < 1ms

@check @a11y @acceptance @local @development @staging @production @fast
Scenario Outline:Check the Terms and Conditions page carries a sound document structure
11

Given I am an anonymous user 673ms

When I go to "/terms-and-conditions" 553ms

And I wait until the page is loaded 2ms

Then the page should have a title 2ms

And the page should declare a language < 1ms

And the page should have exactly one h1 < 1ms

And the heading hierarchy should be valid < 1ms

And the page should have a main landmark < 1ms

And the page should have a navigation landmark < 1ms

And the page should have a skip link < 1ms

And user zoom should be allowed < 1ms

@check @a11y @acceptance @local @development @staging @production
Scenario Outline:Check the Countries page carries a sound document structure
11

Given I am an anonymous user 678ms

When I go to "/countries" 5s 419ms

And I wait until the page is loaded 3ms

Then the page should have a title 2ms

And the page should declare a language 1ms

And the page should have exactly one h1 1ms

And the heading hierarchy should be valid 1ms

And the page should have a main landmark < 1ms

And the page should have a navigation landmark < 1ms

And the page should have a skip link < 1ms

And user zoom should be allowed 1ms

@check @a11y @acceptance @local @development @staging @production
Scenario Outline:Check the Impact page carries a sound document structure
11

Given I am an anonymous user 674ms

When I go to "/impact" 5s 297ms

And I wait until the page is loaded 3ms

Then the page should have a title 2ms

And the page should declare a language < 1ms

And the page should have exactly one h1 < 1ms

And the heading hierarchy should be valid < 1ms

And the page should have a main landmark < 1ms

And the page should have a navigation landmark < 1ms

And the page should have a skip link < 1ms

And user zoom should be allowed < 1ms

@check @a11y @acceptance @local @development @staging @production @fast
Scenario Outline:Check every control and image on the Home page can be identified
9

Given I am an anonymous user 674ms

When I go to "/" 645ms

And I wait until the page is loaded 2ms

Then every image should have an alt attribute 2ms

And every link should have an accessible name 1ms

And every button should have an accessible name 1ms

And every ARIA reference should resolve 1ms

And every ARIA role should be valid 1ms

And no element should have a positive tabindex 1ms

@check @a11y @acceptance @local @development @staging @production @fast
Scenario Outline:Check every control and image on the About page can be identified
9

Given I am an anonymous user 671ms

When I go to "/about" 655ms

And I wait until the page is loaded 2ms

Then every image should have an alt attribute 2ms

And every link should have an accessible name 1ms

And every button should have an accessible name < 1ms

And every ARIA reference should resolve < 1ms

And every ARIA role should be valid 1ms

And no element should have a positive tabindex 1ms

@check @a11y @acceptance @local @development @staging @production @fast
Scenario Outline:Check every control and image on the Kenya country page can be identified
9

Given I am an anonymous user 673ms

When I go to "/countries/kenya" 662ms

And I wait until the page is loaded 3ms

Then every image should have an alt attribute 2ms

And every link should have an accessible name 1ms

And every button should have an accessible name 1ms

And every ARIA reference should resolve < 1ms

And every ARIA role should be valid 1ms

And no element should have a positive tabindex 1ms

@check @a11y @acceptance @local @development @staging @production @fast
Scenario Outline:Check every control and image on the Programs page can be identified
9

Given I am an anonymous user 670ms

When I go to "/programs" 661ms

And I wait until the page is loaded 2ms

Then every image should have an alt attribute 2ms

And every link should have an accessible name 1ms

And every button should have an accessible name < 1ms

And every ARIA reference should resolve < 1ms

And every ARIA role should be valid < 1ms

And no element should have a positive tabindex < 1ms

@check @a11y @acceptance @local @development @staging @production @fast
Scenario Outline:Check every control and image on the Health program page can be identified
9

Given I am an anonymous user 672ms

When I go to "/programs/health" 681ms

And I wait until the page is loaded 2ms

Then every image should have an alt attribute 2ms

And every link should have an accessible name < 1ms

And every button should have an accessible name 1ms

And every ARIA reference should resolve < 1ms

And every ARIA role should be valid < 1ms

And no element should have a positive tabindex < 1ms

@check @a11y @acceptance @local @development @staging @production @fast
Scenario Outline:Check every control and image on the Resources page can be identified
9

Given I am an anonymous user 672ms

When I go to "/resources" 668ms

And I wait until the page is loaded 4ms

Then every image should have an alt attribute 2ms

And every link should have an accessible name 1ms

And every button should have an accessible name 1ms

And every ARIA reference should resolve 4ms

And every ARIA role should be valid 1ms

And no element should have a positive tabindex 1ms

@check @a11y @acceptance @local @development @staging @production @fast
Scenario Outline:Check every control and image on the Resource article page can be identified
9

Given I am an anonymous user 676ms

When I go to "/resources/2026-regional-human-rights-index" 658ms

And I wait until the page is loaded 4ms

Then every image should have an alt attribute 2ms

And every link should have an accessible name < 1ms

And every button should have an accessible name < 1ms

And every ARIA reference should resolve < 1ms

And every ARIA role should be valid < 1ms

And no element should have a positive tabindex < 1ms

@check @a11y @acceptance @local @development @staging @production @fast
Scenario Outline:Check every control and image on the Events page can be identified
9

Given I am an anonymous user 670ms

When I go to "/events" 654ms

And I wait until the page is loaded 2ms

Then every image should have an alt attribute 2ms

And every link should have an accessible name < 1ms

And every button should have an accessible name < 1ms

And every ARIA reference should resolve < 1ms

And every ARIA role should be valid < 1ms

And no element should have a positive tabindex < 1ms

@check @a11y @acceptance @local @development @staging @production @fast
Scenario Outline:Check every control and image on the Event page can be identified
9

Given I am an anonymous user 668ms

When I go to "/events/annual-fundraising-gala" 557ms

And I wait until the page is loaded 2ms

Then every image should have an alt attribute 2ms

And every link should have an accessible name < 1ms

And every button should have an accessible name < 1ms

And every ARIA reference should resolve < 1ms

And every ARIA role should be valid < 1ms

And no element should have a positive tabindex < 1ms

@check @a11y @acceptance @local @development @staging @production @fast
Scenario Outline:Check every control and image on the Donate page can be identified
9

Given I am an anonymous user 672ms

When I go to "/donate" 655ms

And I wait until the page is loaded 2ms

Then every image should have an alt attribute 2ms

And every link should have an accessible name 2ms

And every button should have an accessible name 1ms

And every ARIA reference should resolve < 1ms

And every ARIA role should be valid 1ms

And no element should have a positive tabindex < 1ms

@check @a11y @acceptance @local @development @staging @production @fast
Scenario Outline:Check every control and image on the Newsletter page can be identified
9

Given I am an anonymous user 670ms

When I go to "/newsletter" 658ms

And I wait until the page is loaded 2ms

Then every image should have an alt attribute 2ms

And every link should have an accessible name < 1ms

And every button should have an accessible name < 1ms

And every ARIA reference should resolve < 1ms

And every ARIA role should be valid 2ms

And no element should have a positive tabindex < 1ms

@check @a11y @acceptance @local @development @staging @production @fast
Scenario Outline:Check every control and image on the Search page can be identified
9

Given I am an anonymous user 670ms

When I go to "/search" 552ms

And I wait until the page is loaded 4ms

Then every image should have an alt attribute 2ms

And every link should have an accessible name < 1ms

And every button should have an accessible name < 1ms

And every ARIA reference should resolve < 1ms

And every ARIA role should be valid < 1ms

And no element should have a positive tabindex < 1ms

@check @a11y @acceptance @local @development @staging @production @fast
Scenario Outline:Check every control and image on the Terms and Conditions page can be identified
9

Given I am an anonymous user 674ms

When I go to "/terms-and-conditions" 552ms

And I wait until the page is loaded 2ms

Then every image should have an alt attribute 2ms

And every link should have an accessible name < 1ms

And every button should have an accessible name < 1ms

And every ARIA reference should resolve < 1ms

And every ARIA role should be valid < 1ms

And no element should have a positive tabindex < 1ms

@check @a11y @acceptance @local @development @staging @production
Scenario Outline:Check every control and image on the Countries page can be identified
9

Given I am an anonymous user 673ms

When I go to "/countries" 5s 418ms

And I wait until the page is loaded 3ms

Then every image should have an alt attribute 2ms

And every link should have an accessible name 1ms

And every button should have an accessible name 1ms

And every ARIA reference should resolve < 1ms

And every ARIA role should be valid 1ms

And no element should have a positive tabindex < 1ms

@check @a11y @acceptance @local @development @staging @production
Scenario Outline:Check every control and image on the Impact page can be identified
9

Given I am an anonymous user 674ms

When I go to "/impact" 5s 304ms

And I wait until the page is loaded 2ms

Then every image should have an alt attribute 2ms

And every link should have an accessible name < 1ms

And every button should have an accessible name < 1ms

And every ARIA reference should resolve < 1ms

And every ARIA role should be valid < 1ms

And no element should have a positive tabindex < 1ms

@check @a11y @acceptance @local @development @staging @production @fast
Scenario Outline:Check every form field on the Home page is labelled
4

Given I am an anonymous user 672ms

When I go to "/" 647ms

And I wait until the page is loaded 2ms

Then every form field should have an accessible label 2ms

@check @a11y @acceptance @local @development @staging @production @fast
Scenario Outline:Check every form field on the Resources page is labelled
4

Given I am an anonymous user 674ms

When I go to "/resources" 665ms

And I wait until the page is loaded 2ms

Then every form field should have an accessible label 2ms

@check @a11y @acceptance @local @development @staging @production @fast
Scenario Outline:Check every form field on the Events page is labelled
4

Given I am an anonymous user 669ms

When I go to "/events" 655ms

And I wait until the page is loaded 2ms

Then every form field should have an accessible label 2ms

@check @a11y @acceptance @local @development @staging @production @fast
Scenario Outline:Check every form field on the Donate page is labelled
4

Given I am an anonymous user 672ms

When I go to "/donate" 650ms

And I wait until the page is loaded 2ms

Then every form field should have an accessible label 2ms

@check @a11y @acceptance @local @development @staging @production @fast
Scenario Outline:Check every form field on the Newsletter page is labelled
4

Given I am an anonymous user 669ms

When I go to "/newsletter" 654ms

And I wait until the page is loaded 2ms

Then every form field should have an accessible label 2ms

@check @a11y @acceptance @local @development @staging @production @fast
Scenario Outline:Check every form field on the Search page is labelled
4

Given I am an anonymous user 670ms

When I go to "/search" 552ms

And I wait until the page is loaded 2ms

Then every form field should have an accessible label 2ms

@check @a11y @acceptance @local @development @staging @production @fast
Scenario Outline:Check every form field on the Login page is labelled
4

Given I am an anonymous user 672ms

When I go to "/user/login" 557ms

And I wait until the page is loaded 3ms

Then every form field should have an accessible label 2ms

@check @a11y @acceptance @fast @local @development @staging @production
Scenario:Check the login page carries a sound document structure
10

Given I am an anonymous user 672ms

When I go to "/user/login" 554ms

And I wait until the page is loaded 3ms

Then the page should have a title 1ms

And the page should declare a language < 1ms

And the page should have exactly one h1 < 1ms

And the heading hierarchy should be valid < 1ms

And the page should have a main landmark < 1ms

And the page should have a skip link < 1ms

And user zoom should be allowed < 1ms

@check @a11y @acceptance @fast @local @development @staging @production
Scenario:Check the not found page carries a sound document structure
10

Given I am an anonymous user 672ms

When I go to "/this-page-does-not-exist" 552ms

And I wait until the page is loaded 2ms

Then the page should have a title 2ms

And the page should declare a language < 1ms

And the page should have exactly one h1 < 1ms

And the page should have a main landmark < 1ms

And the page should have a skip link < 1ms

And every link should have an accessible name < 1ms

And user zoom should be allowed < 1ms

@check @a11y @acceptance @local @development @staging @production @fast
Scenario Outline:Verify the skip link is the first thing a keyboard user reaches on the Home page
5

Given I am an anonymous user 672ms

When I go to "/" 646ms

And I wait until the page is loaded 2ms

And I press the key "Tab" 308ms

Then the focused element should match ".skip-link" < 1ms

@check @a11y @acceptance @local @development @staging @production @fast
Scenario Outline:Verify the skip link is the first thing a keyboard user reaches on the Donate page
5

Given I am an anonymous user 678ms

When I go to "/donate" 654ms

And I wait until the page is loaded 3ms

And I press the key "Tab" 308ms

Then the focused element should match ".skip-link" < 1ms

Given I am an anonymous user 674ms

When I go to "/impact" 5s 299ms

And I wait until the page is loaded 3ms

And I press the key "Tab" 308ms

Then the focused element should match ".skip-link" < 1ms

As a communications team
I want every page to declare its own title, canonical URL and share preview
So that search engines index the right URL and a shared link presents the organisation properly.

@check @seo @acceptance @no-javascript @local @development @staging @production @fast
Scenario Outline:Check the About page declares its own canonical URL
4

Given I am an anonymous user 7s 582ms

When I go to "/about" 6s 180ms

And I wait until the page is loaded 3ms

Then the element "link[rel='canonical']" with the attribute "href" and the value containing "/about" should exist 1ms

@check @seo @acceptance @no-javascript @local @development @staging @production @fast
Scenario Outline:Check the Programs page declares its own canonical URL
4

Given I am an anonymous user 672ms

When I go to "/programs" 1s 264ms

And I wait until the page is loaded 3ms

Then the element "link[rel='canonical']" with the attribute "href" and the value containing "/programs" should exist 1ms

@check @seo @acceptance @no-javascript @local @development @staging @production @fast
Scenario Outline:Check the Resources page declares its own canonical URL
4

Given I am an anonymous user 671ms

When I go to "/resources" 1s 424ms

And I wait until the page is loaded 3ms

Then the element "link[rel='canonical']" with the attribute "href" and the value containing "/resources" should exist 1ms

@check @seo @acceptance @no-javascript @local @development @staging @production @fast
Scenario Outline:Check the Events page declares its own canonical URL
4

Given I am an anonymous user 671ms

When I go to "/events" 1s 166ms

And I wait until the page is loaded 3ms

Then the element "link[rel='canonical']" with the attribute "href" and the value containing "/events" should exist 1ms

@check @seo @acceptance @no-javascript @local @development @staging @production @fast
Scenario Outline:Check the Donate page declares its own canonical URL
4

Given I am an anonymous user 669ms

When I go to "/donate" 779ms

And I wait until the page is loaded 2ms

Then the element "link[rel='canonical']" with the attribute "href" and the value containing "/donate" should exist 1ms

@check @seo @acceptance @no-javascript @local @development @staging @production
Scenario Outline:Check the Countries page declares its own canonical URL
4

Given I am an anonymous user 667ms

When I go to "/countries" 5s 994ms

And I wait until the page is loaded 3ms

Then the element "link[rel='canonical']" with the attribute "href" and the value containing "/countries" should exist 1ms

@check @seo @acceptance @no-javascript @local @development @staging @production
Scenario Outline:Check the Impact page declares its own canonical URL
4

Given I am an anonymous user 672ms

When I go to "/impact" 5s 683ms

And I wait until the page is loaded 3ms

Then the element "link[rel='canonical']" with the attribute "href" and the value containing "/impact" should exist 1ms

@check @seo @smoke @fast @no-javascript @local @development @staging @production
Scenario:Verify the front page canonicalises to the Horizon Aid home page
4

Given I am an anonymous user 672ms

When I go to "/" 647ms

And I wait until the page is loaded 2ms

Then the element "link[rel='canonical']" with the attribute "href" and the value containing "/home" should exist 1ms

@check @seo @acceptance @no-javascript @local @development @staging @production @fast
Scenario Outline:Check the Home page titles itself
4

Given I am an anonymous user 669ms

When I go to "/" 646ms

And I wait until the page title contains "Home" 1ms

Then the page should have a title 3ms

@check @seo @acceptance @no-javascript @local @development @staging @production @fast
Scenario Outline:Check the About page titles itself
4

Given I am an anonymous user 673ms

When I go to "/about" 655ms

And I wait until the page title contains "About" 1ms

Then the page should have a title 2ms

@check @seo @acceptance @no-javascript @local @development @staging @production @fast
Scenario Outline:Check the Programs page titles itself
4

Given I am an anonymous user 668ms

When I go to "/programs" 653ms

And I wait until the page title contains "Our Programs" 1ms

Then the page should have a title 2ms

@check @seo @acceptance @no-javascript @local @development @staging @production @fast
Scenario Outline:Check the Resources page titles itself
4

Given I am an anonymous user 673ms

When I go to "/resources" 660ms

And I wait until the page title contains "Resources" 1ms

Then the page should have a title 2ms

@check @seo @acceptance @no-javascript @local @development @staging @production @fast
Scenario Outline:Check the Events page titles itself
4

Given I am an anonymous user 668ms

When I go to "/events" 656ms

And I wait until the page title contains "Events" 1ms

Then the page should have a title 2ms

@check @seo @acceptance @no-javascript @local @development @staging @production @fast
Scenario Outline:Check the Donate page titles itself
4

Given I am an anonymous user 668ms

When I go to "/donate" 649ms

And I wait until the page title contains "Donate" 1ms

Then the page should have a title 2ms

@check @seo @acceptance @no-javascript @local @development @staging @production
Scenario Outline:Check the Countries page titles itself
4

Given I am an anonymous user 673ms

When I go to "/countries" 5s 414ms

And I wait until the page title contains "Countries" 1ms

Then the page should have a title 2ms

@check @seo @acceptance @no-javascript @local @development @staging @production
Scenario Outline:Check the Impact page titles itself
4

Given I am an anonymous user 673ms

When I go to "/impact" 5s 298ms

And I wait until the page title contains "Our Impact" 1ms

Then the page should have a title 2ms

@check @seo @acceptance @no-javascript @local @development @staging @production @fast
Scenario Outline:Check the Home page identifies itself for social sharing
6

Given I am an anonymous user 673ms

When I go to "/" 646ms

And I wait until the page is loaded 3ms

Then the element "meta[property='og:site_name']" with the attribute "content" and the value containing "Horizon Aid" should exist 1ms

And the element "meta[property='og:url']" with the attribute "content" and the value containing "/home" should exist < 1ms

And the element "meta[name='twitter:card']" with the attribute "content" and the value containing "summary" should exist < 1ms

@check @seo @acceptance @no-javascript @local @development @staging @production @fast
Scenario Outline:Check the About page identifies itself for social sharing
6

Given I am an anonymous user 673ms

When I go to "/about" 653ms

And I wait until the page is loaded 2ms

Then the element "meta[property='og:site_name']" with the attribute "content" and the value containing "Horizon Aid" should exist < 1ms

And the element "meta[property='og:url']" with the attribute "content" and the value containing "/about" should exist < 1ms

And the element "meta[name='twitter:card']" with the attribute "content" and the value containing "summary" should exist < 1ms

@check @seo @acceptance @no-javascript @local @development @staging @production @fast
Scenario Outline:Check the Programs page identifies itself for social sharing
6

Given I am an anonymous user 668ms

When I go to "/programs" 658ms

And I wait until the page is loaded 3ms

Then the element "meta[property='og:site_name']" with the attribute "content" and the value containing "Horizon Aid" should exist 1ms

And the element "meta[property='og:url']" with the attribute "content" and the value containing "/programs" should exist < 1ms

And the element "meta[name='twitter:card']" with the attribute "content" and the value containing "summary" should exist < 1ms

@check @seo @acceptance @no-javascript @local @development @staging @production @fast
Scenario Outline:Check the Resources page identifies itself for social sharing
6

Given I am an anonymous user 668ms

When I go to "/resources" 665ms

And I wait until the page is loaded 3ms

Then the element "meta[property='og:site_name']" with the attribute "content" and the value containing "Horizon Aid" should exist 1ms

And the element "meta[property='og:url']" with the attribute "content" and the value containing "/resources" should exist < 1ms

And the element "meta[name='twitter:card']" with the attribute "content" and the value containing "summary" should exist < 1ms

@check @seo @acceptance @no-javascript @local @development @staging @production @fast
Scenario Outline:Check the Events page identifies itself for social sharing
6

Given I am an anonymous user 673ms

When I go to "/events" 656ms

And I wait until the page is loaded 2ms

Then the element "meta[property='og:site_name']" with the attribute "content" and the value containing "Horizon Aid" should exist 1ms

And the element "meta[property='og:url']" with the attribute "content" and the value containing "/events" should exist < 1ms

And the element "meta[name='twitter:card']" with the attribute "content" and the value containing "summary" should exist < 1ms

@check @seo @acceptance @no-javascript @local @development @staging @production @fast
Scenario Outline:Check the Donate page identifies itself for social sharing
6

Given I am an anonymous user 670ms

When I go to "/donate" 657ms

And I wait until the page is loaded 2ms

Then the element "meta[property='og:site_name']" with the attribute "content" and the value containing "Horizon Aid" should exist < 1ms

And the element "meta[property='og:url']" with the attribute "content" and the value containing "/donate" should exist 1ms

And the element "meta[name='twitter:card']" with the attribute "content" and the value containing "summary" should exist < 1ms

@check @seo @acceptance @no-javascript @local @development @staging @production
Scenario Outline:Check the Countries page identifies itself for social sharing
6

Given I am an anonymous user 667ms

When I go to "/countries" 5s 413ms

And I wait until the page is loaded 3ms

Then the element "meta[property='og:site_name']" with the attribute "content" and the value containing "Horizon Aid" should exist 1ms

And the element "meta[property='og:url']" with the attribute "content" and the value containing "/countries" should exist < 1ms

And the element "meta[name='twitter:card']" with the attribute "content" and the value containing "summary" should exist 1ms

@check @seo @acceptance @no-javascript @local @development @staging @production
Scenario Outline:Check the Impact page identifies itself for social sharing
6

Given I am an anonymous user 673ms

When I go to "/impact" 5s 300ms

And I wait until the page is loaded 3ms

Then the element "meta[property='og:site_name']" with the attribute "content" and the value containing "Horizon Aid" should exist 1ms

And the element "meta[property='og:url']" with the attribute "content" and the value containing "/impact" should exist < 1ms

And the element "meta[name='twitter:card']" with the attribute "content" and the value containing "summary" should exist < 1ms

@check @seo @acceptance @fast @no-javascript @local @development @staging @production
Scenario:Check a shipped node page carries a description and a complete share preview
10

Given I am an anonymous user 673ms

When I go to "/terms-and-conditions" 931ms

And I wait until the page is loaded 2ms

Then the element "meta[name='description']" with the attribute "content" and the value containing "terms that govern the use of this website" should exist < 1ms

And the element "meta[property='og:title']" with the attribute "content" and the value containing "Terms and Conditions" should exist < 1ms

And the element "meta[property='og:description']" with the attribute "content" and the value containing "terms that govern the use of this website" should exist < 1ms

And the element "meta[property='og:url']" with the attribute "content" and the value containing "/terms-and-conditions" should exist < 1ms

And the meta tag should exist with the following attributes: 1ms
property og:type
content article

And the "description" meta tag should not contain any HTML tags 1ms

And the "og:description" meta tag should not contain any HTML tags 1ms

@check @seo @regression @no-javascript @local @development @staging @production @fast
Scenario Outline:Verify the Home page is not excluded from search engines
5

Given I am an anonymous user 674ms

When I go to "/" 647ms

And I wait until the page is loaded 4ms

Then the meta tag should not exist with the following attributes: 1ms
name robots
content noindex

And the meta tag should not exist with the following attributes: 1ms
name robots
content noindex, nofollow

@check @seo @regression @no-javascript @local @development @staging @production @fast
Scenario Outline:Verify the About page is not excluded from search engines
5

Given I am an anonymous user 669ms

When I go to "/about" 655ms

And I wait until the page is loaded 3ms

Then the meta tag should not exist with the following attributes: 2ms
name robots
content noindex

And the meta tag should not exist with the following attributes: < 1ms
name robots
content noindex, nofollow

@check @seo @regression @no-javascript @local @development @staging @production @fast
Scenario Outline:Verify the Programs page is not excluded from search engines
5

Given I am an anonymous user 673ms

When I go to "/programs" 662ms

And I wait until the page is loaded 3ms

Then the meta tag should not exist with the following attributes: 1ms
name robots
content noindex

And the meta tag should not exist with the following attributes: 1ms
name robots
content noindex, nofollow

@check @seo @regression @no-javascript @local @development @staging @production @fast
Scenario Outline:Verify the Resources page is not excluded from search engines
5

Given I am an anonymous user 671ms

When I go to "/resources" 659ms

And I wait until the page is loaded 2ms

Then the meta tag should not exist with the following attributes: 1ms
name robots
content noindex

And the meta tag should not exist with the following attributes: 2ms
name robots
content noindex, nofollow

@check @seo @regression @no-javascript @local @development @staging @production @fast
Scenario Outline:Verify the Events page is not excluded from search engines
5

Given I am an anonymous user 672ms

When I go to "/events" 654ms

And I wait until the page is loaded 4ms

Then the meta tag should not exist with the following attributes: 1ms
name robots
content noindex

And the meta tag should not exist with the following attributes: < 1ms
name robots
content noindex, nofollow

@check @seo @regression @no-javascript @local @development @staging @production @fast
Scenario Outline:Verify the Donate page is not excluded from search engines
5

Given I am an anonymous user 667ms

When I go to "/donate" 660ms

And I wait until the page is loaded 3ms

Then the meta tag should not exist with the following attributes: 1ms
name robots
content noindex

And the meta tag should not exist with the following attributes: 1ms
name robots
content noindex, nofollow

@check @seo @regression @no-javascript @local @development @staging @production
Scenario Outline:Verify the Countries page is not excluded from search engines
5

Given I am an anonymous user 668ms

When I go to "/countries" 5s 416ms

And I wait until the page is loaded 3ms

Then the meta tag should not exist with the following attributes: 1ms
name robots
content noindex

And the meta tag should not exist with the following attributes: < 1ms
name robots
content noindex, nofollow

@check @seo @regression @no-javascript @local @development @staging @production
Scenario Outline:Verify the Impact page is not excluded from search engines
5

Given I am an anonymous user 669ms

When I go to "/impact" 5s 300ms

And I wait until the page is loaded 3ms

Then the meta tag should not exist with the following attributes: 1ms
name robots
content noindex

And the meta tag should not exist with the following attributes: < 1ms
name robots
content noindex, nofollow

@check @seo @a11y @acceptance @no-javascript @local @development @staging @production @fast
Scenario Outline:Check the Home page declares a responsive viewport
5

Given I am an anonymous user 672ms

When I go to "/" 644ms

And I wait until the page is loaded 2ms

Then the meta tag should exist with the following attributes: 1ms
name viewport
content width=device-width, initial-scale=1.0

And user zoom should be allowed 2ms

@check @seo @a11y @acceptance @no-javascript @local @development @staging @production @fast
Scenario Outline:Check the Donate page declares a responsive viewport
5

Given I am an anonymous user 668ms

When I go to "/donate" 656ms

And I wait until the page is loaded 2ms

Then the meta tag should exist with the following attributes: 1ms
name viewport
content width=device-width, initial-scale=1.0

And user zoom should be allowed 2ms

@check @seo @a11y @acceptance @no-javascript @local @development @staging @production
Scenario Outline:Check the Impact page declares a responsive viewport
5

Given I am an anonymous user 672ms

When I go to "/impact" 5s 299ms

And I wait until the page is loaded 2ms

Then the meta tag should exist with the following attributes: 1ms
name viewport
content width=device-width, initial-scale=1.0

And user zoom should be allowed 2ms

@check @seo @acceptance @api @no-javascript @local @development @staging @production
Scenario:Check the XML sitemap is published as XML
4

Given I am an anonymous user 673ms

When I go to "/sitemap.xml" 5s 109ms

Then the response status code should be 200 13ms

And the response header "Content-Type" should contain the value "xml" < 1ms

@check @seo @smoke @fast @no-javascript @local @development @staging @production
Scenario:Verify robots.txt is published and does not disallow the whole site
5

Given I am an anonymous user 672ms

When I go to "/robots.txt" 514ms

Then the response status code should be 200 1ms

And the response should contain "User-agent: *" 1ms

And I should not see text matching "Disallow: /\s*$" < 1ms

@any @regression @content @editorial @acceptance
Feature:Editorial - Country - create, read, update and delete 4

As a content editor
I want to create, read, update and delete a Country through the admin UI
So that the Country content type is usable end to end, not just installed.

@check @acceptance @slow @crud @editorial @local @development
Scenario:Check that a Country can be created and read at its public address
44

Given I am a logged in user with the "webmaster" user 13s 645ms

Then I should see "Log out" 6ms

When I go to "/node/add/country" 21s 352ms

And I wait until the page is loaded 4ms

Then I should see "Create Country" 5ms

When I fill in "Title" with "Functional testing suite country" 1s 85ms

And I fill in "Summary" with "A Country created by the Horizon Aid functional testing suite." 1s 63ms

And I fill in the rich text editor field "Our role" with "<p>What we do in the round-trip country.</p>" 4s 785ms

And I fill in "Figure number (value 1)" with "42" 1s 66ms

And I fill in "Figure description (value 1)" with "Round-trip figure" 1s 63ms

And I submit by id "edit-submit" 8s 763ms

And I wait until the page is loaded 2s 950ms

Then I should see "Country Functional testing suite country has been created." 6ms

Then "h1" should have text "Functional testing suite country" within 10 seconds 2ms

Given I am an anonymous user 5s 92ms

When I go to "/countries/functional-testing-suite-country" 5s 772ms

And I wait until the page is loaded 3ms

Then the response status code should be 200 13ms

And "h1" should have text "Functional testing suite country" within 10 seconds 1ms

And I should see "What we do in the round-trip country." 3ms

And I should see "Round-trip figure" 3ms

Given I am a logged in user with the "webmaster" user 1s 894ms

Then I should see "Log out" 5ms

When I go to "/admin/content?title=Functional+testing+suite+country" 15s 541ms

And I wait until the page is loaded 4ms

And I open the "Delete" link in the "Functional testing suite country" row 5s 704ms

And I wait until the page is loaded 3ms

Then I should see "Are you sure you want to delete" 4ms

When I click the "Delete" button 802ms

And I wait until the page is loaded 3ms

Then I should see "has been deleted" 4ms

When I go to "/admin/content/trash" 10s 482ms

And I wait until the page is loaded 3ms

And I open the "Purge" link in the "Functional testing suite country" row 758ms

And I wait until the page is loaded 3ms

And I wait until the page title contains "Are you sure you want to permanently delete" 1ms

When I submit by id "edit-submit" 5s 741ms

And I wait until the page is loaded 4ms

Then I should see "has been permanently deleted" 4ms

And I should not see "Functional testing suite country" in the "table" element 30s 6ms

Given I am an anonymous user 653ms

When I go to "/countries/functional-testing-suite-country" 543ms

And I wait until the page is loaded 2ms

Then the response status code should be 404 98ms

@check @acceptance @slow @crud @editorial @local @development
Scenario:Verify that an edit to a Country persists to the public page
46

Given I am a logged in user with the "webmaster" user 1s 927ms

Then I should see "Log out" 5ms

When I go to "/node/add/country" 7s 18ms

And I wait until the page is loaded 3ms

And I fill in "Title" with "Functional testing suite edited country" 1s 80ms

And I fill in "Summary" with "A Country the suite is about to edit." 1s 64ms

And I fill in the rich text editor field "Our role" with "<p>The first version of our role.</p>" 4s 782ms

And I submit by id "edit-submit" 5s 76ms

And I wait until the page is loaded 966ms

Then I should see "has been created" 4ms

When I go to "/admin/content?title=Functional+testing+suite+edited+country" 711ms

And I wait until the page is loaded 3ms

Then I should see "Functional testing suite edited country" 6ms

When I open the "Edit" link in the "Functional testing suite edited country" row 6s 79ms

And I wait until the page is loaded 5s 6ms

Then I should see "Functional testing suite edited country" value in the "edit-title-0-value" input element 1ms

And I should see "A Country the suite is about to edit." value in the "edit-field-description-0-value" input element < 1ms

When I fill in "Summary" with "The revised summary of the edited country." 1s 66ms

And I fill in the rich text editor field "Our role" with "<p>The revised version of our role.</p>" 4s 767ms

And I submit by id "edit-submit" 823ms

And I wait until the page is loaded 3ms

Then I should see "Country Functional testing suite edited country has been updated." 3ms

Given I am an anonymous user 864ms

When I go to "/countries/functional-testing-suite-edited-country" 663ms

And I wait until the page is loaded 3ms

Then the response status code should be 200 9ms

And I should see "The revised version of our role." 3ms

And I should not see "The first version of our role." 2ms

Given I am a logged in user with the "webmaster" user 1s 886ms

Then I should see "Log out" 5ms

When I go to "/admin/content?title=Functional+testing+suite+edited+country" 703ms

And I wait until the page is loaded 2ms

And I open the "Delete" link in the "Functional testing suite edited country" row 680ms

And I wait until the page is loaded 3ms

And I click the "Delete" button 711ms

And I wait until the page is loaded 3ms

Then I should see "has been deleted" 4ms

When I go to "/admin/content/trash" 729ms

And I wait until the page is loaded 2ms

And I open the "Purge" link in the "Functional testing suite edited country" row 709ms

And I wait until the page is loaded 3ms

And I wait until the page title contains "Are you sure you want to permanently delete" 1ms

When I submit by id "edit-submit" 1s 422ms

And I wait until the page is loaded 2ms

Then I should see "has been permanently deleted" 3ms

And I should not see "Functional testing suite edited country" in the "table" element 30s 4ms

@check @regression @slow @crud @editorial @local @development
Scenario:Verify that a Country cannot be saved without its required fields
11

Given I am a logged in user with the "webmaster" user 1s 943ms

Then I should see "Log out" 4ms

When I go to "/node/add/country" 6s 180ms

And I wait until the page is loaded 4ms

Given browser validation for the form "#node-country-form" is disabled 1ms

When I submit by id "edit-submit" 6s 838ms

And I wait until the page is loaded 3ms

Then I should see "Title field is required" 5ms

And I should see "Summary field is required" 4ms

And I should see "Our role field is required" 3ms

And I should not see "has been created" 2ms

@check @regression @slow @security @crud @editorial @local @development
Scenario:Verify that an unpublished Country is not readable by a visitor
36

Given I am a logged in user with the "webmaster" user 1s 919ms

Then I should see "Log out" 4ms

When I go to "/node/add/country" 6s 992ms

And I wait until the page is loaded 3ms

And I fill in "Title" with "Functional testing suite unpublished country" 1s 88ms

And I fill in "Summary" with "This country must never be readable by an anonymous visitor." 1s 60ms

And I fill in the rich text editor field "Our role" with "<p>Unpublished round-trip country.</p>" 4s 780ms

And I uncheck "Published" 330ms

And I submit by id "edit-submit" 5s 123ms

And I wait until the page is loaded 960ms

Then I should see "has been created" 4ms

Given I am an anonymous user 860ms

When I go to "/countries/functional-testing-suite-unpublished-country" 5s 601ms

And I wait until the page is loaded 2ms

Then the response status code should be 404 11ms

When I go to "/countries" 11s 15ms

And I wait until the page is loaded 3ms

Then I should not see "Functional testing suite unpublished country" 2ms

Given I am a logged in user with the "webmaster" user 1s 890ms

Then I should see "Log out" 4ms

When I go to "/admin/content?title=Functional+testing+suite+unpublished+country" 717ms

And I wait until the page is loaded 4ms

And I open the "Delete" link in the "Functional testing suite unpublished country" row 684ms

And I wait until the page is loaded 4ms

And I click the "Delete" button 755ms

And I wait until the page is loaded 3ms

Then I should see "has been deleted" 3ms

When I go to "/admin/content/trash" 712ms

And I wait until the page is loaded 3ms

And I open the "Purge" link in the "Functional testing suite unpublished country" row 688ms

And I wait until the page is loaded 3ms

And I wait until the page title contains "Are you sure you want to permanently delete" 1ms

When I submit by id "edit-submit" 1s 400ms

And I wait until the page is loaded 3ms

Then I should see "has been permanently deleted" 3ms

And I should not see "Functional testing suite unpublished country" in the "table" element 30s 4ms

@any @regression @content @editorial @acceptance
Feature:Editorial - Program - create, read, update and delete 4

As a content editor
I want to create, read, update and delete a Program through the admin UI
So that the Program content type and its country references work end to end.

@check @acceptance @slow @crud @editorial @local @development
Scenario:Check that a Program can be created and read at its public address
43

Given I am a logged in user with the "webmaster" user 1s 933ms

Then I should see "Log out" 5ms

When I go to "/node/add/program" 7s 772ms

And I wait until the page is loaded 3ms

Then I should see "Create Program" 8ms

When I fill in "Title" with "Functional testing suite program" 1s 73ms

And I fill in "Summary" with "A Program created by the Horizon Aid functional testing suite." 1s 63ms

And I fill in the rich text editor field "Content" with "<p>What the round-trip program does.</p>" 4s 794ms

And I select "Education" from "field_program_type" 308ms

And I fill in "field_countries[0][target_id]" with "Colombia" 1s 72ms

And I submit by id "edit-submit" 8s 761ms

And I wait until the page is loaded 2s 374ms

Then I should see "Program Functional testing suite program has been created." 5ms

Then "h1" should have text "Functional testing suite program" within 10 seconds 1ms

Given I am an anonymous user 860ms

When I go to "/programs/functional-testing-suite-program" 5s 965ms

And I wait until the page is loaded 3ms

Then the response status code should be 200 12ms

And "h1" should have text "Functional testing suite program" within 10 seconds 1ms

And I should see "What the round-trip program does." 2ms

Given I am a logged in user with the "webmaster" user 1s 878ms

Then I should see "Log out" 4ms

When I go to "/admin/content?title=Functional+testing+suite+program" 712ms

And I wait until the page is loaded 3ms

And I open the "Delete" link in the "Functional testing suite program" row 684ms

And I wait until the page is loaded 3ms

Then I should see "Are you sure you want to delete" 3ms

When I click the "Delete" button 755ms

And I wait until the page is loaded 3ms

Then I should see "has been deleted" 3ms

When I go to "/admin/content/trash" 715ms

And I wait until the page is loaded 3ms

And I open the "Purge" link in the "Functional testing suite program" row 694ms

And I wait until the page is loaded 3ms

And I wait until the page title contains "Are you sure you want to permanently delete" 1ms

When I submit by id "edit-submit" 1s 415ms

And I wait until the page is loaded 3ms

Then I should see "has been permanently deleted" 3ms

And I should not see "Functional testing suite program" in the "table" element 30s 4ms

Given I am an anonymous user 655ms

When I go to "/programs/functional-testing-suite-program" 562ms

And I wait until the page is loaded 2ms

Then the response status code should be 404 35ms

@check @acceptance @slow @crud @editorial @local @development
Scenario:Verify that a Program keeps its Sector and its country reference
43

Given I am a logged in user with the "webmaster" user 1s 954ms

Then I should see "Log out" 5ms

When I go to "/node/add/program" 7s 722ms

And I wait until the page is loaded 3ms

And I fill in "Title" with "Functional testing suite referenced program" 1s 68ms

And I fill in "Summary" with "A Program whose references the suite reads back." 1s 63ms

And I select "Agriculture" from "field_program_type" 1s 57ms

And I fill in "field_countries[0][target_id]" with "Colombia" 1s 73ms

And I submit by id "edit-submit" 5s 165ms

And I wait until the page is loaded 928ms

Then I should see "has been created" 4ms

When I go to "/admin/content?title=Functional+testing+suite+referenced+program" 719ms

And I wait until the page is loaded 3ms

And I open the "Edit" link in the "Functional testing suite referenced program" row 7s 35ms

And I wait until the page is loaded 5s 5ms

Then the option "Agriculture" should be selected within the select element "[name='field_program_type']" 756ms

And I should see "Colombia" value in the "edit-field-countries-0-target-id" input element 1ms

When I select "Health" from "field_program_type" 307ms

And I submit by id "edit-submit" 808ms

And I wait until the page is loaded 3ms

Then I should see "has been updated" 4ms

When I go to "/admin/content?title=Functional+testing+suite+referenced+program" 673ms

And I wait until the page is loaded 3ms

And I open the "Edit" link in the "Functional testing suite referenced program" row 7s 26ms

And I wait until the page is loaded 5ms

Then the option "Health" should be selected within the select element "[name='field_program_type']" 7ms

And the option "Agriculture" should not be selected within the select element "[name='field_program_type']" 8ms

When I go to "/admin/content?title=Functional+testing+suite+referenced+program" 738ms

And I wait until the page is loaded 3ms

And I open the "Delete" link in the "Functional testing suite referenced program" row 655ms

And I wait until the page is loaded 3ms

And I click the "Delete" button 747ms

And I wait until the page is loaded 3ms

Then I should see "has been deleted" 3ms

When I go to "/admin/content/trash" 709ms

And I wait until the page is loaded 2ms

And I open the "Purge" link in the "Functional testing suite referenced program" row 692ms

And I wait until the page is loaded 3ms

And I wait until the page title contains "Are you sure you want to permanently delete" < 1ms

When I submit by id "edit-submit" 714ms

And I wait until the page is loaded 3ms

Then I should see "has been permanently deleted" 3ms

And I should not see "Functional testing suite referenced program" in the "table" element 30s 5ms

@check @regression @crud @editorial @local @development
Scenario:Verify that a Program cannot be saved without a title
9

Given I am a logged in user with the "webmaster" user 1s 919ms

Then I should see "Log out" 4ms

When I go to "/node/add/program" 7s 745ms

And I wait until the page is loaded 3ms

Given browser validation for the form "#node-program-form" is disabled < 1ms

When I submit by id "edit-submit" 6s 939ms

And I wait until the page is loaded 3ms

Then I should see "Title field is required" 7ms

And I should not see "has been created" 3ms

@check @regression @slow @security @crud @editorial @local @development
Scenario:Verify that an unpublished Program is not readable by a visitor
35

Given I am a logged in user with the "webmaster" user 1s 931ms

Then I should see "Log out" 5ms

When I go to "/node/add/program" 7s 58ms

And I wait until the page is loaded 3ms

And I fill in "Title" with "Functional testing suite unpublished program" 1s 70ms

And I fill in "Summary" with "This program must never be readable by an anonymous visitor." 1s 64ms

And I uncheck "Published" 1s 82ms

And I submit by id "edit-submit" 8s 762ms

And I wait until the page is loaded 2s 350ms

Then I should see "has been created" 5ms

Given I am an anonymous user 863ms

When I go to "/programs/functional-testing-suite-unpublished-program" 573ms

And I wait until the page is loaded 2ms

Then the response status code should be 404 10ms

When I go to "/programs" 6s 91ms

And I wait until the page is loaded 3ms

Then I should not see "Functional testing suite unpublished program" 2ms

Given I am a logged in user with the "webmaster" user 1s 952ms

Then I should see "Log out" 5ms

When I go to "/admin/content?title=Functional+testing+suite+unpublished+program" 753ms

And I wait until the page is loaded 2ms

And I open the "Delete" link in the "Functional testing suite unpublished program" row 693ms

And I wait until the page is loaded 5ms

And I click the "Delete" button 782ms

And I wait until the page is loaded 5ms

Then I should see "has been deleted" 4ms

When I go to "/admin/content/trash" 756ms

And I wait until the page is loaded 3ms

And I open the "Purge" link in the "Functional testing suite unpublished program" row 711ms

And I wait until the page is loaded 3ms

And I wait until the page title contains "Are you sure you want to permanently delete" 1ms

When I submit by id "edit-submit" 1s 247ms

And I wait until the page is loaded 2ms

Then I should see "has been permanently deleted" 3ms

And I should not see "Functional testing suite unpublished program" in the "table" element 30s 6ms

@any @regression @content @editorial @acceptance
Feature:Editorial - Resource - create, read, update and delete 4

As a content editor
I want to create, read, update and delete a Resource through the admin UI
So that the Resources section works end to end, moderation state and all.

@check @acceptance @slow @crud @editorial @local @development
Scenario:Check that a Resource can be created, published and read by a visitor
42

Given I am a logged in user with the "webmaster" user 1s 972ms

Then I should see "Log out" 5ms

When I go to "/node/add/blog" 16s 814ms

And I wait until the page is loaded 5s 6ms

Then I should see "Create Blog post" 6ms

When I fill in "Title" with "Functional testing suite resource" 1s 77ms

And I fill in "Description" with "A Resource created by the Horizon Aid functional testing suite." 1s 68ms

And I fill in the rich text editor field "Content" with "<p>The body of the round-trip resource.</p>" 4s 783ms

And I select "Published" from "#edit-moderation-state-0-state" 1s 61ms

And I submit by id "edit-submit" 8s 764ms

And I wait until the page is loaded 2s 372ms

Then I should see "Blog post Functional testing suite resource has been created." 6ms

Then "h1" should have text "Functional testing suite resource" within 10 seconds 1ms

Given I am an anonymous user 872ms

When I go to "/resources/functional-testing-suite-resource" 5s 704ms

And I wait until the page is loaded 3ms

Then the response status code should be 200 11ms

And "h1" should have text "Functional testing suite resource" within 10 seconds 1ms

And I should see "The body of the round-trip resource." 2ms

Given I am a logged in user with the "webmaster" user 1s 918ms

Then I should see "Log out" 5ms

When I go to "/admin/content?title=Functional+testing+suite+resource" 708ms

And I wait until the page is loaded 3ms

And I open the "Delete" link in the "Functional testing suite resource" row 717ms

And I wait until the page is loaded 3ms

Then I should see "Are you sure you want to delete" 3ms

When I click the "Delete" button 767ms

And I wait until the page is loaded 3ms

Then I should see "has been deleted" 4ms

When I go to "/admin/content/trash" 724ms

And I wait until the page is loaded 2ms

And I open the "Purge" link in the "Functional testing suite resource" row 694ms

And I wait until the page is loaded 3ms

And I wait until the page title contains "Are you sure you want to permanently delete" < 1ms

When I submit by id "edit-submit" 1s 351ms

And I wait until the page is loaded 2ms

Then I should see "has been permanently deleted" 3ms

And I should not see "Functional testing suite resource" in the "table" element 30s 4ms

Given I am an anonymous user 657ms

When I go to "/resources/functional-testing-suite-resource" 544ms

And I wait until the page is loaded 2ms

Then the response status code should be 404 36ms

@check @acceptance @slow @crud @editorial @local @development
Scenario:Verify that an edit to a published Resource persists and stays public
45

Given I am a logged in user with the "webmaster" user 1s 931ms

Then I should see "Log out" 5ms

When I go to "/node/add/blog" 6s 642ms

And I wait until the page is loaded 5s 4ms

And I fill in "Title" with "Functional testing suite edited resource" 1s 73ms

And I fill in "Description" with "A Resource the suite is about to edit." 1s 60ms

And I fill in the rich text editor field "Content" with "<p>The first version of the resource body.</p>" 4s 777ms

And I select "Published" from "#edit-moderation-state-0-state" 1s 55ms

And I submit by id "edit-submit" 5s 838ms

And I wait until the page is loaded 3ms

Then I should see "has been created" 4ms

When I go to "/admin/content?title=Functional+testing+suite+edited+resource" 712ms

And I wait until the page is loaded 2ms

And I open the "Edit" link in the "Functional testing suite edited resource" row 5s 554ms

And I wait until the page is loaded 5s 5ms

Then I should see "Functional testing suite edited resource" value in the "edit-title-0-value" input element 1ms

When I fill in the rich text editor field "Content" with "<p>The revised version of the resource body.</p>" 4s 773ms

And I select "Published" from "#edit-moderation-state-0-state" 1s 56ms

And I submit by id "edit-submit" 834ms

And I wait until the page is loaded 3ms

Then I should see "has been updated" 3ms

Given I am an anonymous user 869ms

When I go to "/resources/functional-testing-suite-edited-resource" 650ms

And I wait until the page is loaded 2ms

Then the response status code should be 200 7ms

And I should see "The revised version of the resource body." 2ms

And I should not see "The first version of the resource body." 1ms

Given I am a logged in user with the "webmaster" user 1s 892ms

Then I should see "Log out" 4ms

When I go to "/admin/content?title=Functional+testing+suite+edited+resource" 706ms

And I wait until the page is loaded 2ms

And I open the "Delete" link in the "Functional testing suite edited resource" row 683ms

And I wait until the page is loaded 4ms

And I click the "Delete" button 756ms

And I wait until the page is loaded 3ms

Then I should see "has been deleted" 3ms

When I go to "/admin/content/trash" 712ms

And I wait until the page is loaded 2ms

And I open the "Purge" link in the "Functional testing suite edited resource" row 693ms

And I wait until the page is loaded 3ms

And I wait until the page title contains "Are you sure you want to permanently delete" 1ms

When I submit by id "edit-submit" 743ms

And I wait until the page is loaded 3ms

Then I should see "has been permanently deleted" 3ms

And I should not see "Functional testing suite edited resource" in the "table" element 30s 4ms

@check @regression @slow @crud @editorial @local @development
Scenario:Verify that a Resource cannot be saved without its required fields
10

Given I am a logged in user with the "webmaster" user 1s 926ms

Then I should see "Log out" 5ms

When I go to "/node/add/blog" 6s 739ms

And I wait until the page is loaded 5s 4ms

Given browser validation for the form "#node-blog-form" is disabled < 1ms

When I submit by id "edit-submit" 6s 271ms

And I wait until the page is loaded 5s 5ms

Then I should see "Title field is required" 6ms

And I should see "Description field is required" 3ms

And I should not see "has been created" 3ms

@check @regression @slow @security @crud @editorial @local @development
Scenario:Verify that a draft Resource is not readable by a visitor
35

Given I am a logged in user with the "webmaster" user 1s 936ms

Then I should see "Log out" 7ms

When I go to "/node/add/blog" 6s 769ms

And I wait until the page is loaded 5s 3ms

And I fill in "Title" with "Functional testing suite draft resource" 1s 74ms

And I fill in "Description" with "This draft must never be readable by an anonymous visitor." 1s 61ms

And I select "Draft" from "#edit-moderation-state-0-state" 1s 56ms

And I submit by id "edit-submit" 5s 854ms

And I wait until the page is loaded 3ms

Then I should see "has been created" 4ms

Given I am an anonymous user 853ms

When I go to "/resources/functional-testing-suite-draft-resource" 573ms

And I wait until the page is loaded 2ms

Then the response status code should be 404 10ms

When I go to "/resources" 1s 294ms

And I wait until the page is loaded 3ms

Then I should not see "Functional testing suite draft resource" 2ms

Given I am a logged in user with the "webmaster" user 1s 887ms

Then I should see "Log out" 5ms

When I go to "/admin/content?title=Functional+testing+suite+draft+resource" 723ms

And I wait until the page is loaded 2ms

And I open the "Delete" link in the "Functional testing suite draft resource" row 666ms

And I wait until the page is loaded 3ms

And I click the "Delete" button 728ms

And I wait until the page is loaded 3ms

Then I should see "has been deleted" 3ms

When I go to "/admin/content/trash" 711ms

And I wait until the page is loaded 2ms

And I open the "Purge" link in the "Functional testing suite draft resource" row 673ms

And I wait until the page is loaded 3ms

And I wait until the page title contains "Are you sure you want to permanently delete" 1ms

When I submit by id "edit-submit" 745ms

And I wait until the page is loaded 2ms

Then I should see "has been permanently deleted" 4ms

And I should not see "Functional testing suite draft resource" in the "table" element 30s 4ms

@any @regression @content @editorial @acceptance
Feature:Editorial - Event - create, read, update and delete 4

As a content editor
I want to create, read, update and delete an Event through the admin UI
So that the Event content type and its date range are usable end to end.

@check @acceptance @slow @crud @editorial @local @development
Scenario:Check that an Event can be created with a date range and read by a visitor
46

Given I am a logged in user with the "webmaster" user 18s 845ms

Then I should see "Log out" 6ms

When I go to "/node/add/event" 17s 644ms

And I wait until the page is loaded 4ms

Then I should see "Create Event" 5ms

When I fill in "Title" with "Functional testing suite event" 1s 68ms

And I fill in "Description" with "An Event created by the Horizon Aid functional testing suite." 1s 66ms

And I fill in "Location" with "Test Hall, Ground Floor" 1s 69ms

And I fill in "edit-field-when-0-time-wrapper-value-date" with "2030-05-14" by its "id" attribute 1s 61ms

And I fill in "edit-field-when-0-time-wrapper-value-time" with "09:00" by its "id" attribute 1s 60ms

And I fill in the rich text editor field "Body" with "<p>The body of the round-trip event.</p>" 4s 800ms

And I submit by id "edit-submit" 9s 507ms

And I wait until the page is loaded 6s 786ms

Then I should see "Event Functional testing suite event has been created." 6ms

Then "h1" should have text "Functional testing suite event" within 10 seconds 2ms

Given I am an anonymous user 6s 312ms

When I go to "/events/functional-testing-suite-event" 5s 547ms

And I wait until the page is loaded 407ms

Then the response status code should be 200 13ms

And "h1" should have text "Functional testing suite event" within 10 seconds 2ms

And I should see "An Event created by the Horizon Aid functional testing suite." 2ms

And I should see "The body of the round-trip event." 2ms

And I should see "14 May 2030" 2ms

Given I am a logged in user with the "webmaster" user 1s 904ms

Then I should see "Log out" 5ms

When I go to "/admin/content?title=Functional+testing+suite+event" 5s 783ms

And I wait until the page is loaded 5ms

And I open the "Delete" link in the "Functional testing suite event" row 5s 703ms

And I wait until the page is loaded 4ms

Then I should see "Are you sure you want to delete" 3ms

When I click the "Delete" button 1s 968ms

And I wait until the page is loaded 3s 902ms

Then I should see "has been deleted" 5ms

When I go to "/admin/content/trash" 5s 731ms

And I wait until the page is loaded 3ms

And I open the "Purge" link in the "Functional testing suite event" row 5s 711ms

And I wait until the page is loaded 3ms

And I wait until the page title contains "Are you sure you want to permanently delete" 1ms

When I submit by id "edit-submit" 776ms

And I wait until the page is loaded 3ms

Then I should see "has been permanently deleted" 3ms

And I should not see "Functional testing suite event" in the "table" element 30s 5ms

Given I am an anonymous user 657ms

When I go to "/events/functional-testing-suite-event" 553ms

And I wait until the page is loaded 4ms

Then the response status code should be 404 95ms

@check @acceptance @crud @editorial @local @development
Scenario:Verify that moving an Event to another date persists
53

Given I am a logged in user with the "webmaster" user 1s 938ms

Then I should see "Log out" 6ms

When I go to "/node/add/event" 7s 452ms

And I wait until the page is loaded 4ms

And I fill in "Title" with "Functional testing suite moved event" 1s 67ms

And I fill in "Description" with "An Event the suite is about to move." 1s 65ms

And I fill in "Location" with "Test Hall, Ground Floor" 1s 64ms

And I fill in "edit-field-when-0-time-wrapper-value-date" with "2030-05-14" by its "id" attribute 1s 60ms

And I fill in "edit-field-when-0-time-wrapper-value-time" with "09:00" by its "id" attribute 1s 58ms

And I submit by id "edit-submit" 5s 101ms

And I wait until the page is loaded 958ms

Then I should see "has been created" 4ms

When I go to "/admin/content?title=Functional+testing+suite+moved+event" 716ms

And I wait until the page is loaded 3ms

And I open the "Edit" link in the "Functional testing suite moved event" row 11s 658ms

And I wait until the page is loaded 5s 6ms

Then I should see "2030-05-14" value in the "edit-field-when-0-time-wrapper-value-date" input element 1ms

And I should see "09:00" value in the "edit-field-when-0-time-wrapper-value-time" input element < 1ms

And I should see "Test Hall, Ground Floor" value in the "edit-field-location-0-value" input element < 1ms

When I fill in "edit-field-when-0-time-wrapper-value-date" with "2030-06-20" by its "id" attribute 1s 60ms

And I fill in "Location" with "Main Auditorium, First Floor" 1s 67ms

And I submit by id "edit-submit" 796ms

And I wait until the page is loaded 3ms

Then I should see "has been updated" 4ms

When I go to "/admin/content?title=Functional+testing+suite+moved+event" 703ms

And I wait until the page is loaded 3ms

And I open the "Edit" link in the "Functional testing suite moved event" row 6s 667ms

And I wait until the page is loaded 5s 6ms

Then I should see "2030-06-20" value in the "edit-field-when-0-time-wrapper-value-date" input element 1ms

And I should see "Main Auditorium, First Floor" value in the "edit-field-location-0-value" input element < 1ms

Given I am an anonymous user 897ms

When I go to "/events/functional-testing-suite-moved-event" 649ms

And I wait until the page is loaded 4ms

Then I should see "20 June 2030" 2ms

And I should not see "14 May 2030" 1ms

Given I am a logged in user with the "webmaster" user 1s 893ms

Then I should see "Log out" 5ms

When I go to "/admin/content?title=Functional+testing+suite+moved+event" 683ms

And I wait until the page is loaded 3ms

And I open the "Delete" link in the "Functional testing suite moved event" row 688ms

And I wait until the page is loaded 3ms

And I click the "Delete" button 751ms

And I wait until the page is loaded 3ms

Then I should see "has been deleted" 3ms

When I go to "/admin/content/trash" 709ms

And I wait until the page is loaded 4ms

And I open the "Purge" link in the "Functional testing suite moved event" row 701ms

And I wait until the page is loaded 5ms

And I wait until the page title contains "Are you sure you want to permanently delete" 1ms

When I submit by id "edit-submit" 1s 399ms

And I wait until the page is loaded 3ms

Then I should see "has been permanently deleted" 3ms

And I should not see "Functional testing suite moved event" in the "table" element 30s 4ms

@check @regression @slow @crud @editorial @local @development
Scenario:Verify that an Event cannot be saved without a title
9

Given I am a logged in user with the "webmaster" user 1s 927ms

Then I should see "Log out" 4ms

When I go to "/node/add/event" 7s 388ms

And I wait until the page is loaded 3ms

Given browser validation for the form "#node-event-form" is disabled < 1ms

When I submit by id "edit-submit" 6s 567ms

And I wait until the page is loaded 4ms

Then I should see "Title field is required" 6ms

And I should not see "has been created" 3ms

@check @regression @security @crud @editorial @local @development
Scenario:Verify that an unpublished Event is not readable by a visitor
34

Given I am a logged in user with the "webmaster" user 1s 919ms

Then I should see "Log out" 5ms

When I go to "/node/add/event" 7s 416ms

And I wait until the page is loaded 3ms

And I fill in "Title" with "Functional testing suite unpublished event" 1s 66ms

And I fill in "Description" with "This event must never be readable by an anonymous visitor." 1s 63ms

And I fill in "edit-field-when-0-time-wrapper-value-date" with "2030-07-01" by its "id" attribute 1s 58ms

And I fill in "edit-field-when-0-time-wrapper-value-time" with "09:00" by its "id" attribute 1s 57ms

And I uncheck "Published" 1s 72ms

And I submit by id "edit-submit" 5s 93ms

And I wait until the page is loaded 961ms

Then I should see "has been created" 4ms

Given I am an anonymous user 850ms

When I go to "/events/functional-testing-suite-unpublished-event" 5s 440ms

And I wait until the page is loaded 142ms

Then the response status code should be 404 11ms

Given I am a logged in user with the "webmaster" user 1s 862ms

Then I should see "Log out" 4ms

When I go to "/admin/content?title=Functional+testing+suite+unpublished+event" 716ms

And I wait until the page is loaded 3ms

And I open the "Delete" link in the "Functional testing suite unpublished event" row 682ms

And I wait until the page is loaded 4ms

And I click the "Delete" button 753ms

And I wait until the page is loaded 3ms

Then I should see "has been deleted" 3ms

When I go to "/admin/content/trash" 721ms

And I wait until the page is loaded 3ms

And I open the "Purge" link in the "Functional testing suite unpublished event" row 692ms

And I wait until the page is loaded 4ms

And I wait until the page title contains "Are you sure you want to permanently delete" 1ms

When I submit by id "edit-submit" 1s 409ms

And I wait until the page is loaded 3ms

Then I should see "has been permanently deleted" 3ms

And I should not see "Functional testing suite unpublished event" in the "table" element 30s 4ms

@any @regression @content @editorial @acceptance
Feature:Editorial - Utility page - create, read, update and delete 4

As a content editor
I want to create, read, update and delete a Utility page through the admin UI
So that standalone pages such as Privacy or Terms work end to end.

Given I am a logged in user with the "webmaster" user 1s 920ms

Then I should see "Log out" 5ms

When I go to "/node/add/page" 15s 698ms

And I wait until the page is loaded 5s 5ms

Then I should see "Create Utility page" 6ms

When I fill in "Title" with "Functional testing suite utility page" 1s 69ms

And I fill in "edit-field-description-0-value" with "A Utility page created by the Horizon Aid functional testing suite." by its "id" attribute 1s 56ms

And I fill in the rich text editor field "Content" with "<p>The body of the round-trip utility page.</p>" 4s 777ms

And I select "Published" from "#edit-moderation-state-0-state" 1s 56ms

And I submit by id "edit-submit" 5s 993ms

And I wait until the page is loaded 4s 914ms

Then I should see "Utility page Functional testing suite utility page has been created." 4ms

Given I am an anonymous user 853ms

When I go to "/functional-testing-suite-utility-page" 634ms

And I wait until the page is loaded 2ms

Then the response status code should be 200 7ms

And I should see "The body of the round-trip utility page." 2ms

Given I am a logged in user with the "webmaster" user 1s 890ms

Then I should see "Log out" 4ms

When I go to "/admin/content?title=Functional+testing+suite+utility+page" 719ms

And I wait until the page is loaded 3ms

And I open the "Delete" link in the "Functional testing suite utility page" row 687ms

And I wait until the page is loaded 3ms

Then I should see "Are you sure you want to delete" 3ms

When I click the "Delete" button 755ms

And I wait until the page is loaded 3ms

Then I should see "has been deleted" 4ms

When I go to "/admin/content/trash" 707ms

And I wait until the page is loaded 3ms

And I open the "Purge" link in the "Functional testing suite utility page" row 701ms

And I wait until the page is loaded 3ms

And I wait until the page title contains "Are you sure you want to permanently delete" 1ms

When I submit by id "edit-submit" 1s 354ms

And I wait until the page is loaded 2ms

Then I should see "has been permanently deleted" 4ms

And I should not see "Functional testing suite utility page" in the "table" element 30s 4ms

Given I am an anonymous user 654ms

When I go to "/functional-testing-suite-utility-page" 543ms

And I wait until the page is loaded 2ms

Then the response status code should be 404 31ms

@check @acceptance @slow @crud @editorial @local @development
Scenario:Verify that an edit to a Utility page persists to the public page
46

Given I am a logged in user with the "webmaster" user 1s 926ms

Then I should see "Log out" 5ms

When I go to "/node/add/page" 5s 630ms

And I wait until the page is loaded 5s 3ms

And I fill in "Title" with "Functional testing suite edited utility page" 1s 64ms

And I fill in "edit-field-description-0-value" with "A Utility page the suite is about to edit." by its "id" attribute 1s 58ms

And I fill in the rich text editor field "Content" with "<p>The first version of the page body.</p>" 4s 774ms

And I select "Published" from "#edit-moderation-state-0-state" 1s 57ms

And I submit by id "edit-submit" 5s 55ms

And I wait until the page is loaded 964ms

Then I should see "has been created" 4ms

When I go to "/admin/content?title=Functional+testing+suite+edited+utility+page" 708ms

And I wait until the page is loaded 2ms

And I open the "Edit" link in the "Functional testing suite edited utility page" row 5s 364ms

And I wait until the page is loaded 5s 5ms

Then I should see "Functional testing suite edited utility page" value in the "edit-title-0-value" input element 1ms

And I should see "A Utility page the suite is about to edit." value in the "edit-field-description-0-value" input element 1ms

When I fill in the rich text editor field "Content" with "<p>The revised version of the page body.</p>" 4s 765ms

And I select "Published" from "#edit-moderation-state-0-state" 1s 55ms

And I submit by id "edit-submit" 835ms

And I wait until the page is loaded 3ms

Then I should see "has been updated" 4ms

Given I am an anonymous user 860ms

When I go to "/functional-testing-suite-edited-utility-page" 634ms

And I wait until the page is loaded 2ms

Then the response status code should be 200 8ms

And I should see "The revised version of the page body." 1ms

And I should not see "The first version of the page body." 1ms

Given I am a logged in user with the "webmaster" user 1s 885ms

Then I should see "Log out" 4ms

When I go to "/admin/content?title=Functional+testing+suite+edited+utility+page" 708ms

And I wait until the page is loaded 2ms

And I open the "Delete" link in the "Functional testing suite edited utility page" row 687ms

And I wait until the page is loaded 3ms

And I click the "Delete" button 747ms

And I wait until the page is loaded 3ms

Then I should see "has been deleted" 3ms

When I go to "/admin/content/trash" 709ms

And I wait until the page is loaded 3ms

And I open the "Purge" link in the "Functional testing suite edited utility page" row 685ms

And I wait until the page is loaded 3ms

And I wait until the page title contains "Are you sure you want to permanently delete" 1ms

When I submit by id "edit-submit" 1s 452ms

And I wait until the page is loaded 2ms

Then I should see "has been permanently deleted" 5ms

And I should not see "Functional testing suite edited utility page" in the "table" element 30s 4ms

@check @regression @slow @crud @editorial @local @development
Scenario:Verify that a Utility page cannot be saved without its required fields
10

Given I am a logged in user with the "webmaster" user 1s 943ms

Then I should see "Log out" 4ms

When I go to "/node/add/page" 5s 630ms

And I wait until the page is loaded 5s 5ms

Given browser validation for the form "#node-page-form" is disabled < 1ms

When I submit by id "edit-submit" 6s 58ms

And I wait until the page is loaded 5s 5ms

Then I should see "Title field is required" 5ms

And I should see "Description field is required" 3ms

And I should not see "has been created" 2ms

@check @regression @slow @security @crud @editorial @local @development
Scenario:Verify that a draft Utility page is not readable by a visitor
32

Given I am a logged in user with the "webmaster" user 1s 935ms

Then I should see "Log out" 5ms

When I go to "/node/add/page" 5s 627ms

And I wait until the page is loaded 5s 5ms

And I fill in "Title" with "Functional testing suite draft utility page" 1s 64ms

And I fill in "edit-field-description-0-value" with "This draft must never be readable by an anonymous visitor." by its "id" attribute 1s 58ms

And I select "Draft" from "#edit-moderation-state-0-state" 1s 57ms

And I submit by id "edit-submit" 5s 89ms

And I wait until the page is loaded 964ms

Then I should see "has been created" 4ms

Given I am an anonymous user 846ms

When I go to "/functional-testing-suite-draft-utility-page" 574ms

And I wait until the page is loaded 2ms

Then the response status code should be 404 10ms

Given I am a logged in user with the "webmaster" user 1s 883ms

Then I should see "Log out" 4ms

When I go to "/admin/content?title=Functional+testing+suite+draft+utility+page" 714ms

And I wait until the page is loaded 3ms

And I open the "Delete" link in the "Functional testing suite draft utility page" row 656ms

And I wait until the page is loaded 3ms

And I click the "Delete" button 759ms

And I wait until the page is loaded 3ms

Then I should see "has been deleted" 3ms

When I go to "/admin/content/trash" 715ms

And I wait until the page is loaded 3ms

And I open the "Purge" link in the "Functional testing suite draft utility page" row 693ms

And I wait until the page is loaded 3ms

And I wait until the page title contains "Are you sure you want to permanently delete" 1ms

When I submit by id "edit-submit" 1s 419ms

And I wait until the page is loaded 2ms

Then I should see "has been permanently deleted" 5ms

And I should not see "Functional testing suite draft utility page" in the "table" element 30s 4ms

@any @regression @content @editorial @acceptance
Feature:Editorial - Media - upload, read, rename and delete 3

As a content editor
I want to upload, read, rename and delete media through the admin UI
So that the media types Horizon Aid's content actually uses work end to end.

@check @acceptance @slow @crud @editorial @local @development
Scenario:Check that an Image media item can be uploaded, read, renamed and deleted
43

Given I am a logged in user with the "webmaster" user 19s 302ms

Then I should see "Log out" 7ms

When I go to "/media/add/image" 5s 787ms

And I wait until the page is loaded 9ms

Then I should see "Add Image" 6ms

When I attach the file "horizonaid-test-image.png" to "#edit-field-media-image-0-upload" 1s 73ms

And I wait for AJAX to finish 5s 9ms

When I wait for the text "Alternative text" to appear 2ms

When I fill in "Name" with "Functional testing suite image" 316ms

And I fill in "Alternative text" with "A four by four test image" 313ms

And I submit by id "edit-submit" 9s 507ms

And I wait until the page is loaded 10s 3ms

Then I should see "Image Functional testing suite image has been created." 15ms

When I go to "/admin/content/media?name=Functional+testing+suite+image" 2s 134ms

And I wait until the page is loaded 4ms

Then I should see "Functional testing suite image" 4ms

When I open the "Edit" link in the "Functional testing suite image" row 10s 886ms

And I wait until the page is loaded 5ms

Then I should see "Functional testing suite image" value in the "edit-name-0-value" input element 1ms

When I fill in "Name" with "Functional testing suite renamed image" 313ms

And I submit by id "edit-submit" 5s 884ms

And I wait until the page is loaded 4ms

When I go to "/admin/content/media?name=Functional+testing+suite" 795ms

And I wait until the page is loaded 4ms

Then I should see "Functional testing suite renamed image" 5ms

And I should not see "Functional testing suite image" 3ms

When I open the "Delete" link in the "Functional testing suite renamed image" row 5s 750ms

And I wait until the page is loaded 4ms

Then I should see "Are you sure you want to delete" 4ms

When I click the "Delete" button 819ms

And I wait until the page is loaded 4ms

When I go to "/admin/content/media?name=Functional+testing+suite" 688ms

And I wait until the page is loaded 4ms

Then I should not see "Functional testing suite renamed image" 2ms

When I go to "/admin/content/trash/media" 5s 864ms

And I wait until the page is loaded 5ms

And I open the "Purge" link in the "Functional testing suite renamed image" row 5s 762ms

And I wait until the page is loaded 4ms

And I wait until the page title contains "Are you sure you want to permanently delete" 1ms

When I submit by id "edit-submit" 5s 814ms

And I wait until the page is loaded 3ms

Then I should see "has been permanently deleted" 4ms

And I should not see "Functional testing suite renamed image" in the "table" element 30s 6ms

@check @acceptance @slow @crud @editorial @local @development
Scenario:Check that a Document media item can be uploaded, read, renamed and deleted
39

Given I am a logged in user with the "webmaster" user 2s 65ms

Then I should see "Log out" 6ms

When I go to "/media/add/document" 5s 732ms

And I wait until the page is loaded 4ms

Then I should see "Add Document" 4ms

When I attach the file "horizonaid-test-document.txt" to "#edit-field-media-document-0-upload" 1s 70ms

And I wait for AJAX to finish 4ms

And I should see "horizonaid-test-document" 3ms

When I fill in "Name" with "Functional testing suite document" 313ms

And I submit by id "edit-submit" 5s 542ms

And I wait until the page is loaded 5s 6ms

Then I should see "Document Functional testing suite document has been created." 12ms

When I go to "/admin/content/media?name=Functional+testing+suite+document" 817ms

And I wait until the page is loaded 4ms

Then I should see "Functional testing suite document" 6ms

When I open the "Edit" link in the "Functional testing suite document" row 867ms

And I wait until the page is loaded 4ms

And I fill in "Name" with "Functional testing suite renamed document" 317ms

And I submit by id "edit-submit" 1s 893ms

And I wait until the page is loaded 5ms

When I go to "/admin/content/media?name=Functional+testing+suite" 1s 351ms

And I wait until the page is loaded 4ms

Then I should see "Functional testing suite renamed document" 6ms

When I open the "Delete" link in the "Functional testing suite renamed document" row 739ms

And I wait until the page is loaded 4ms

And I click the "Delete" button 822ms

And I wait until the page is loaded 11ms

When I go to "/admin/content/media?name=Functional+testing+suite" 712ms

And I wait until the page is loaded 4ms

Then I should not see "Functional testing suite renamed document" 2ms

When I go to "/admin/content/trash/media" 756ms

And I wait until the page is loaded 5ms

And I open the "Purge" link in the "Functional testing suite renamed document" row 734ms

And I wait until the page is loaded 4ms

And I wait until the page title contains "Are you sure you want to permanently delete" 2ms

When I submit by id "edit-submit" 1s 925ms

And I wait until the page is loaded 4ms

Then I should see "has been permanently deleted" 4ms

And I should not see "Functional testing suite renamed document" in the "table" element 30s 6ms

Given I am a logged in user with the "webmaster" user 2s 80ms

Then I should see "Log out" 6ms

When I go to "/media/add/image" 804ms

And I wait until the page is loaded 3ms

And I attach the file "horizonaid-test-image.png" to "#edit-field-media-image-0-upload" 1s 71ms

And I wait for AJAX to finish 4ms

When I wait for the text "Alternative text" to appear 1ms

When I fill in "Name" with "Functional testing suite featured image" 312ms

And I fill in "Alternative text" with "A four by four test image" 312ms

And I submit by id "edit-submit" 5s 483ms

And I wait until the page is loaded 561ms

Then I should see "has been created" 18ms

When I go to "/node/add/blog" 17s 457ms

And I wait until the page is loaded 5s 5ms

And I fill in "Title" with "Functional testing suite media carrier" 1s 80ms

And I fill in "Description" with "A Resource carrying an uploaded featured image." 1s 64ms

And I open the "field_featured_image" media library 4s 457ms

And I wait for the modal to appear 1ms

Then I should see "Add or select media" in the modal 757ms

When I select the media "Functional testing suite featured image" 5s 90ms

And I submit the media library dialog 4s 781ms

And I wait for the modal to disappear 2ms

And I select "Published" from "#edit-moderation-state-0-state" 1s 63ms

And I submit by id "edit-submit" 9s 140ms

And I wait until the page is loaded 5s 952ms

Then I should see "has been created" 7ms

Given I am an anonymous user 5s 298ms

When I go to "/resources/functional-testing-suite-media-carrier" 5s 870ms

And I wait until the page is loaded 8ms

Then the response status code should be 200 15ms

And I should see image with the "A four by four test image" alt text 1ms

Given I am a logged in user with the "webmaster" user 2s 4ms

Then I should see "Log out" 7ms

When I go to "/admin/content?title=Functional+testing+suite+media+carrier" 5s 523ms

And I wait until the page is loaded 5ms

And I open the "Delete" link in the "Functional testing suite media carrier" row 743ms

And I wait until the page is loaded 5ms

And I click the "Delete" button 858ms

And I wait until the page is loaded 4ms

When I go to "/admin/content/media?name=Functional+testing+suite+featured+image" 771ms

And I wait until the page is loaded 3ms

And I open the "Delete" link in the "Functional testing suite featured image" row 721ms

And I wait until the page is loaded 4ms

And I click the "Delete" button 838ms

And I wait until the page is loaded 4ms

When I go to "/admin/content/media?name=Functional+testing+suite" 707ms

And I wait until the page is loaded 4ms

Then I should not see "Functional testing suite featured image" 2ms

When I go to "/admin/content/trash" 5s 787ms

And I wait until the page is loaded 4ms

And I open the "Purge" link in the "Functional testing suite media carrier" row 752ms

And I wait until the page is loaded 4ms

And I wait until the page title contains "Are you sure you want to permanently delete" 1ms

When I submit by id "edit-submit" 826ms

And I wait until the page is loaded 3ms

Then I should see "has been permanently deleted" 4ms

And I should not see "Functional testing suite media carrier" in the "table" element 30s 6ms

When I go to "/admin/content/trash/media" 777ms

And I wait until the page is loaded 4ms

And I open the "Purge" link in the "Functional testing suite featured image" row 754ms

And I wait until the page is loaded 4ms

And I wait until the page title contains "Are you sure you want to permanently delete" 1ms

When I submit by id "edit-submit" 757ms

And I wait until the page is loaded 4ms

Then I should see "has been permanently deleted" 4ms

And I should not see "Functional testing suite featured image" in the "table" element 30s 4ms

As a site builder
I want the admin account to reach the content, media and page-creation surfaces
So that the editorial toolchain the recipe wires up actually works after install.

@check @regression @slow @editorial @local @development
Scenario:Check that the webmaster reaches the content listing
7

Given I am a logged in user with the "webmaster" user 2s 66ms

Then I should see "Log out" 6ms

When I go to "/admin/content" 1s 124ms

And I wait until the page is loaded 5ms

Then I should see "Content" 10ms

And I should not see "Access denied" 4ms

And I should not see "The website encountered an unexpected error" 3ms

@check @regression @editorial @local @development
Scenario:Check that the webmaster reaches the media library
7

Given I am a logged in user with the "webmaster" user 2s 70ms

Then I should see "Log out" 6ms

When I go to "/admin/content/media" 5s 587ms

And I wait until the page is loaded 625ms

Then I should see "Media" 10ms

And I should not see "Access denied" 4ms

And I should not see "The website encountered an unexpected error" 5ms

@check @regression @slow @editorial @local @development
Scenario:Check that the webmaster can start a new page
8

Given I am a logged in user with the "webmaster" user 2s 78ms

Then I should see "Log out" 6ms

When I go to "/node/add/page" 15s 867ms

And I wait until the page is loaded 5s 6ms

Then I should see "Create Utility page" 7ms

And I should see a "Title" element 7ms

And I should not see "Access denied" 3ms

And I should not see "The website encountered an unexpected error" 2ms

@check @regression @slow @editorial @local @development
Scenario Outline:Check that the webmaster can start a new Country
7

Given I am a logged in user with the "webmaster" user 2s 75ms

Then I should see "Log out" 6ms

When I go to "/node/add/country" 16s 880ms

And I wait until the page is loaded 4ms

Then I should see "Create Country" 7ms

And I should see a "Title" element 8ms

And I should not see "The website encountered an unexpected error" 3ms

@check @regression @slow @editorial @local @development
Scenario Outline:Check that the webmaster can start a new Program
7

Given I am a logged in user with the "webmaster" user 2s 64ms

Then I should see "Log out" 6ms

When I go to "/node/add/program" 8s 564ms

And I wait until the page is loaded 4ms

Then I should see "Create Program" 9ms

And I should see a "Title" element 16ms

And I should not see "The website encountered an unexpected error" 4ms

@check @regression @slow @editorial @local @development
Scenario Outline:Check that the webmaster can start a new Event
7

Given I am a logged in user with the "webmaster" user 2s 85ms

Then I should see "Log out" 6ms

When I go to "/node/add/event" 13s 52ms

And I wait until the page is loaded 6ms

Then I should see "Create Event" 7ms

And I should see a "Title" element 8ms

And I should not see "The website encountered an unexpected error" 3ms

@check @regression @slow @editorial @local @development
Scenario Outline:Check that the webmaster can start a new Blog post
7

Given I am a logged in user with the "webmaster" user 2s 75ms

Then I should see "Log out" 9ms

When I go to "/node/add/blog" 7s 99ms

And I wait until the page is loaded 5s 5ms

Then I should see "Create Blog post" 7ms

And I should see a "Title" element 7ms

And I should not see "The website encountered an unexpected error" 3ms

@check @regression @slow @editorial @local @development
Scenario Outline:Check that the webmaster can start a new Utility page
7

Given I am a logged in user with the "webmaster" user 2s 64ms

Then I should see "Log out" 6ms

When I go to "/node/add/page" 5s 827ms

And I wait until the page is loaded 5s 6ms

Then I should see "Create Utility page" 6ms

And I should see a "Title" element 7ms

And I should not see "The website encountered an unexpected error" 3ms

As a site builder taking over a Horizon Aid site
I want every Canvas page the recipe ships to be listed for editing
So that the pages can be maintained, not just viewed.

@check @smoke @canvas @local @development @staging @production
Scenario:Check that every Canvas page the recipe ships is listed for a site builder
13

Given I am a logged in user with the "webmaster" user 19s 779ms

Then I should see "Log out" 9ms

When I go to "/admin/content/pages" 6s 10ms

And I wait until the page is loaded 7ms

Then "h1" should have text "Pages" within 10 seconds 3ms

And I should see "Home" 6ms

And I should see "About" 4ms

And I should see "Countries" 5ms

And I should see "Our Programs" 4ms

And I should see "Resources" 4ms

And I should see "Events" 4ms

And I should see "Our Impact" 4ms

And I should see "Donate" 4ms

@check @smoke @canvas @local @development @staging @production
Scenario Outline:Check that the "Home" Canvas page row offers the editor
5

Given I am a logged in user with the "webmaster" user 2s 118ms

Then I should see "Log out" 7ms

When I go to "/admin/content/pages" 863ms

And I wait until the page is loaded 6ms

Then I should see the "Edit" operation for the "Home" content 1ms

@check @smoke @canvas @local @development @staging @production
Scenario Outline:Check that the "About" Canvas page row offers the editor
5

Given I am a logged in user with the "webmaster" user 2s 140ms

Then I should see "Log out" 7ms

When I go to "/admin/content/pages" 1s 313ms

And I wait until the page is loaded 5ms

Then I should see the "Edit" operation for the "About" content 1ms

@check @smoke @canvas @local @development @staging @production
Scenario Outline:Check that the "Countries" Canvas page row offers the editor
5

Given I am a logged in user with the "webmaster" user 2s 143ms

Then I should see "Log out" 8ms

When I go to "/admin/content/pages" 877ms

And I wait until the page is loaded 14ms

Then I should see the "Edit" operation for the "Countries" content 1ms

@check @smoke @canvas @local @development @staging @production
Scenario Outline:Check that the "Our Programs" Canvas page row offers the editor
5

Given I am a logged in user with the "webmaster" user 2s 117ms

Then I should see "Log out" 7ms

When I go to "/admin/content/pages" 1s 314ms

And I wait until the page is loaded 5ms

Then I should see the "Edit" operation for the "Our Programs" content 2ms

@check @smoke @canvas @local @development @staging @production
Scenario Outline:Check that the "Resources" Canvas page row offers the editor
5

Given I am a logged in user with the "webmaster" user 2s 158ms

Then I should see "Log out" 8ms

When I go to "/admin/content/pages" 859ms

And I wait until the page is loaded 5ms

Then I should see the "Edit" operation for the "Resources" content 1ms

@check @smoke @canvas @local @development @staging @production
Scenario Outline:Check that the "Events" Canvas page row offers the editor
5

Given I am a logged in user with the "webmaster" user 2s 160ms

Then I should see "Log out" 7ms

When I go to "/admin/content/pages" 1s 329ms

And I wait until the page is loaded 5ms

Then I should see the "Edit" operation for the "Events" content 1ms

@check @smoke @canvas @local @development @staging @production
Scenario Outline:Check that the "Our Impact" Canvas page row offers the editor
5

Given I am a logged in user with the "webmaster" user 2s 171ms

Then I should see "Log out" 6ms

When I go to "/admin/content/pages" 856ms

And I wait until the page is loaded 6ms

Then I should see the "Edit" operation for the "Our Impact" content 1ms

@check @smoke @canvas @local @development @staging @production
Scenario Outline:Check that the "Donate" Canvas page row offers the editor
5

Given I am a logged in user with the "webmaster" user 2s 123ms

Then I should see "Log out" 7ms

When I go to "/admin/content/pages" 1s 369ms

And I wait until the page is loaded 6ms

Then I should see the "Edit" operation for the "Donate" content 1ms

As a site builder taking over a Horizon Aid site
I want the Home and About Canvas pages to open in the Canvas editor
So that they can be edited, not just viewed.

@check @acceptance @canvas @nightly @local @development @staging @production
Scenario Outline:Check that the Home Canvas page opens in the Canvas editor
5

Given I am a logged in user with the "webmaster" user 18s 747ms

Then I should see "Log out" 8ms

When I open the "Home" Canvas page in the editor 35s 74ms

Then the url should match "/canvas/editor/canvas_page/" < 1ms

And the "Library" button should be visible within 60 seconds 11ms

@check @acceptance @canvas @nightly @local @development @staging @production
Scenario Outline:Check that the About Canvas page opens in the Canvas editor
5

Given I am a logged in user with the "webmaster" user 2s 177ms

Then I should see "Log out" 8ms

When I open the "About" Canvas page in the editor 24s 838ms

Then the url should match "/canvas/editor/canvas_page/" < 1ms

And the "Library" button should be visible within 60 seconds 12ms

@check @acceptance @canvas @nightly @local @development @staging @production
Scenario:Check that the About Canvas page renders for a visitor and opens for a builder
10

Given I am an anonymous user 9s 968ms

When I go to "/about" 6s 226ms

And I wait until the page is loaded 5ms

Then the response status code should be 200 18ms

And "h1" should have text "About Us" within 10 seconds 3ms

Given I am a logged in user with the "webmaster" user 2s 86ms

Then I should see "Log out" 8ms

When I open the "About" Canvas page in the editor 24s 829ms

Then the url should match "/canvas/editor/canvas_page/" < 1ms

And the "Library" button should be visible within 60 seconds 11ms

As a site builder taking over a Horizon Aid site
I want the Countries and Our Programs Canvas pages to open in the Canvas editor
So that they can be edited, not just viewed.

@check @acceptance @canvas @nightly @local @development @staging @production
Scenario Outline:Check that the Countries Canvas page opens in the Canvas editor
5

Given I am a logged in user with the "webmaster" user 19s 790ms

Then I should see "Log out" 7ms

When I open the "Countries" Canvas page in the editor 34s 70ms

Then the url should match "/canvas/editor/canvas_page/" < 1ms

And the "Library" button should be visible within 60 seconds 12ms

@check @acceptance @canvas @nightly @local @development @staging @production
Scenario Outline:Check that the Our Programs Canvas page opens in the Canvas editor
5

Given I am a logged in user with the "webmaster" user 2s 144ms

Then I should see "Log out" 7ms

When I open the "Our Programs" Canvas page in the editor 24s 847ms

Then the url should match "/canvas/editor/canvas_page/" < 1ms

And the "Library" button should be visible within 60 seconds 14ms

As a site builder taking over a Horizon Aid site
I want the Resources and Events Canvas pages to open in the Canvas editor
So that they can be edited, not just viewed.

@check @acceptance @canvas @nightly @local @development @staging @production
Scenario Outline:Check that the Resources Canvas page opens in the Canvas editor
5

Given I am a logged in user with the "webmaster" user 14s 756ms

Then I should see "Log out" 9ms

When I open the "Resources" Canvas page in the editor 33s 192ms

Then the url should match "/canvas/editor/canvas_page/" < 1ms

And the "Library" button should be visible within 60 seconds 15ms

@check @acceptance @canvas @nightly @local @development @staging @production
Scenario Outline:Check that the Events Canvas page opens in the Canvas editor
5

Given I am a logged in user with the "webmaster" user 2s 171ms

Then I should see "Log out" 8ms

When I open the "Events" Canvas page in the editor 28s 805ms

Then the url should match "/canvas/editor/canvas_page/" < 1ms

And the "Library" button should be visible within 60 seconds 13ms

As a site builder taking over a Horizon Aid site
I want the Our Impact and Donate Canvas pages to open in the Canvas editor
So that they can be edited, not just viewed.

@check @acceptance @canvas @nightly @local @development @staging @production
Scenario Outline:Check that the Our Impact Canvas page opens in the Canvas editor
5

Given I am a logged in user with the "webmaster" user 15s 223ms

Then I should see "Log out" 8ms

When I open the "Our Impact" Canvas page in the editor 29s 615ms

Then the url should match "/canvas/editor/canvas_page/" < 1ms

And the "Library" button should be visible within 60 seconds 16ms

@check @acceptance @canvas @nightly @local @development @staging @production
Scenario Outline:Check that the Donate Canvas page opens in the Canvas editor
5

Given I am a logged in user with the "webmaster" user 2s 256ms

Then I should see "Log out" 8ms

When I open the "Donate" Canvas page in the editor 25s 779ms

Then the url should match "/canvas/editor/canvas_page/" < 1ms

And the "Library" button should be visible within 60 seconds 9ms

As a security-conscious site owner
I want anonymous visitors kept out of every administrative surface
So that a permission regression in the recipe cannot expose the back office.

@check @regression @fast @security @permissions @local @development @staging @production
Scenario Outline:Check that an anonymous visitor is refused the administration
4

Given I am an anonymous user 6s 754ms

When I go to "/admin" 5s 942ms

And I wait until the page is loaded 6ms

Then the response status code should be 403 16ms

@check @regression @fast @security @permissions @local @development @staging @production
Scenario Outline:Check that an anonymous visitor is refused the content listing
4

Given I am an anonymous user 696ms

When I go to "/admin/content" 607ms

And I wait until the page is loaded 6ms

Then the response status code should be 403 9ms

@check @regression @fast @security @permissions @local @development @staging @production
Scenario Outline:Check that an anonymous visitor is refused the media overview
4

Given I am an anonymous user 691ms

When I go to "/admin/content/media" 603ms

And I wait until the page is loaded 5ms

Then the response status code should be 403 15ms

@check @regression @fast @security @permissions @local @development @staging @production
Scenario Outline:Check that an anonymous visitor is refused the Canvas pages
4

Given I am an anonymous user 690ms

When I go to "/admin/content/pages" 602ms

And I wait until the page is loaded 7ms

Then the response status code should be 403 14ms

@check @regression @fast @security @permissions @local @development @staging @production
Scenario Outline:Check that an anonymous visitor is refused the people listing
4

Given I am an anonymous user 688ms

When I go to "/admin/people" 594ms

And I wait until the page is loaded 7ms

Then the response status code should be 403 8ms

@check @regression @fast @security @permissions @local @development @staging @production
Scenario Outline:Check that an anonymous visitor is refused the permissions page
4

Given I am an anonymous user 688ms

When I go to "/admin/people/permissions" 606ms

And I wait until the page is loaded 10ms

Then the response status code should be 403 8ms

@check @regression @fast @security @permissions @local @development @staging @production
Scenario Outline:Check that an anonymous visitor is refused the modules page
4

Given I am an anonymous user 696ms

When I go to "/admin/modules" 597ms

And I wait until the page is loaded 4ms

Then the response status code should be 403 8ms

@check @regression @fast @security @permissions @local @development @staging @production
Scenario Outline:Check that an anonymous visitor is refused the appearance page
4

Given I am an anonymous user 687ms

When I go to "/admin/appearance" 598ms

And I wait until the page is loaded 4ms

Then the response status code should be 403 8ms

@check @regression @fast @security @permissions @local @development @staging @production
Scenario Outline:Check that an anonymous visitor is refused the configuration
4

Given I am an anonymous user 689ms

When I go to "/admin/config" 604ms

And I wait until the page is loaded 4ms

Then the response status code should be 403 9ms

@check @regression @fast @security @permissions @local @development @staging @production
Scenario Outline:Check that an anonymous visitor is refused the status report
4

Given I am an anonymous user 690ms

When I go to "/admin/reports/status" 603ms

And I wait until the page is loaded 8ms

Then the response status code should be 403 13ms

@check @regression @fast @security @permissions @local @development @staging @production
Scenario Outline:Check that an anonymous visitor is refused taxonomy admin
4

Given I am an anonymous user 697ms

When I go to "/admin/structure/taxonomy" 597ms

And I wait until the page is loaded 3ms

Then the response status code should be 403 7ms

@check @regression @fast @security @permissions @local @development @staging @production
Scenario Outline:Check that an anonymous visitor is refused content type admin
4

Given I am an anonymous user 686ms

When I go to "/admin/structure/types" 604ms

And I wait until the page is loaded 3ms

Then the response status code should be 403 8ms

@check @regression @fast @security @permissions @local @development @staging @production
Scenario Outline:Check that an anonymous visitor cannot create Country content
4

Given I am an anonymous user 690ms

When I go to "/node/add/country" 597ms

And I wait until the page is loaded 3ms

Then the response status code should be 403 8ms

@check @regression @fast @security @permissions @local @development @staging @production
Scenario Outline:Check that an anonymous visitor cannot create Program content
4

Given I am an anonymous user 695ms

When I go to "/node/add/program" 604ms

And I wait until the page is loaded 3ms

Then the response status code should be 403 7ms

@check @regression @fast @security @permissions @local @development @staging @production
Scenario Outline:Check that an anonymous visitor cannot create Event content
4

Given I am an anonymous user 694ms

When I go to "/node/add/event" 596ms

And I wait until the page is loaded 4ms

Then the response status code should be 403 8ms

@check @regression @fast @security @permissions @local @development @staging @production
Scenario Outline:Check that an anonymous visitor cannot create Blog post content
4

Given I am an anonymous user 684ms

When I go to "/node/add/blog" 600ms

And I wait until the page is loaded 3ms

Then the response status code should be 403 8ms

@check @regression @fast @security @permissions @local @development @staging @production
Scenario Outline:Check that an anonymous visitor cannot create Utility page content
4

Given I am an anonymous user 692ms

When I go to "/node/add/page" 597ms

And I wait until the page is loaded 3ms

Then the response status code should be 403 8ms

@check @smoke @fast @security @permissions @local @development @staging @production
Scenario Outline:Check that an anonymous visitor can read the country page
5

Given I am an anonymous user 685ms

When I go to "/countries/colombia" 6s 462ms

And I wait until the page is loaded 4ms

Then the response status code should be 200 7ms

And "h1" should have text "Colombia" within 10 seconds 2ms

@check @smoke @fast @security @permissions @local @development @staging @production
Scenario Outline:Check that an anonymous visitor can read the program page
5

Given I am an anonymous user 691ms

When I go to "/programs/women" 6s 304ms

And I wait until the page is loaded 3ms

Then the response status code should be 200 7ms

And "h1" should have text "Women" within 10 seconds 1ms

@check @smoke @fast @security @permissions @local @development @staging @production
Scenario Outline:Check that an anonymous visitor can read the resource page
5

Given I am an anonymous user 689ms

When I go to "/resources/emergency-relief-flooded-states" 6s 404ms

And I wait until the page is loaded 3ms

Then the response status code should be 200 7ms

And "h1" should have text "Emergency relief in flooded states" within 10 seconds 1ms

@check @smoke @fast @security @permissions @local @development @staging @production
Scenario Outline:Check that an anonymous visitor can read the event page
5

Given I am an anonymous user 692ms

When I go to "/events/supply-chain-resilience-review" 5s 829ms

And I wait until the page is loaded 3ms

Then the response status code should be 200 8ms

And "h1" should have text "Supply chain resilience review" within 10 seconds 1ms

@check @regression @fast @security @permissions @local @development @staging @production
Scenario Outline:Check that an anonymous visitor is refused the media edit route
4

Given I am an anonymous user 691ms

When I go to "/media/1/edit" 610ms

And I wait until the page is loaded 3ms

Then the response status code should be 403 7ms

@check @regression @fast @security @permissions @local @development @staging @production
Scenario Outline:Check that an anonymous visitor is refused the media delete route
4

Given I am an anonymous user 689ms

When I go to "/media/1/delete" 596ms

And I wait until the page is loaded 3ms

Then the response status code should be 403 8ms

@check @regression @fast @security @permissions @local @development @staging @production
Scenario Outline:Check that an anonymous visitor is refused the media creation route
4

Given I am an anonymous user 690ms

When I go to "/media/add/image" 603ms

And I wait until the page is loaded 3ms

Then the response status code should be 403 7ms

@check @regression @fast @security @permissions @local @development @staging @production
Scenario Outline:Check that an anonymous visitor is refused the the media grid route
4

Given I am an anonymous user 690ms

When I go to "/admin/content/media-grid" 594ms

And I wait until the page is loaded 4ms

Then the response status code should be 403 8ms

@check @smoke @fast @security @permissions @local @development @staging @production
Scenario:Check that an anonymous visitor can read a Canvas page but not edit it
11

Given I am an anonymous user 686ms

When I go to "/about" 14s 472ms

And I wait until the page is loaded 4ms

Then the response status code should be 200 9ms

And "h1" should have text "About Us" within 10 seconds 2ms

When I go to "/admin/content/pages" 567ms

And I wait until the page is loaded 3ms

Then the response status code should be 403 7ms

When I go to "/canvas/editor/canvas_page/1" 582ms

And I wait until the page is loaded 3ms

Then the response status code should be 403 7ms

@check @smoke @fast @security @permissions @local @development @staging @production
Scenario:Check that the login page is reachable and presents the form
6

Given I am an anonymous user 689ms

When I go to "/user/login" 595ms

And I wait until the page is loaded 3ms

Then the response status code should be 200 8ms

And I should see a "Username or email address" element 8ms

And I should see a "Password" element 2ms

As the owner of a Horizon Aid site
I want each role held to the permissions the recipe grants it
So that a permission added or lost when the recipe changes is caught.

@check @regression @slow @security @permissions @local @development
Scenario:Check that a Content editor may author the editorial content types
17

Given I am a logged in user with the "Content editor" user 17s 374ms

Then I should see "Log out" 5ms

When I go to "/node/add/blog" 20s 45ms

And I wait until the page is loaded 5s 7ms

Then "h1" should have text "Create Blog post" within 10 seconds 2ms

When I go to "/node/add/event" 12s 748ms

And I wait until the page is loaded 5ms

Then "h1" should have text "Create Event" within 10 seconds 1ms

When I go to "/node/add/page" 15s 722ms

And I wait until the page is loaded 5s 6ms

Then "h1" should have text "Create Utility page" within 10 seconds 2ms

When I go to "/admin/content" 10s 952ms

And I wait until the page is loaded 5ms

Then "h1" should have text "Content" within 10 seconds 2ms

When I go to "/admin/content/media" 10s 841ms

And I wait until the page is loaded 5s 6ms

Then "h1" should have text "Media" within 10 seconds 2ms

@check @regression @security @permissions @local @development
Scenario Outline:Check that a Content editor is refused the people listing
5

Given I am a logged in user with the "Content editor" user 5s 473ms

Then I should see "Log out" 4ms

When I go to "/admin/people" 5s 752ms

And I wait until the page is loaded 4ms

Then I should see "You are not authorized to access this page." 3ms

@check @regression @security @permissions @local @development
Scenario Outline:Check that a Content editor is refused the modules page
5

Given I am a logged in user with the "Content editor" user 2s 13ms

Then I should see "Log out" 4ms

When I go to "/admin/modules" 722ms

And I wait until the page is loaded 3ms

Then I should see "You are not authorized to access this page." 3ms

@check @regression @security @permissions @local @development
Scenario Outline:Check that a Content editor is refused the appearance page
5

Given I am a logged in user with the "Content editor" user 2s 6ms

Then I should see "Log out" 4ms

When I go to "/admin/appearance" 732ms

And I wait until the page is loaded 4ms

Then I should see "You are not authorized to access this page." 4ms

@check @regression @security @permissions @local @development
Scenario Outline:Check that a Content editor is refused content type admin
5

Given I am a logged in user with the "Content editor" user 2s 5ms

Then I should see "Log out" 5ms

When I go to "/admin/structure/types" 727ms

And I wait until the page is loaded 3ms

Then I should see "You are not authorized to access this page." 3ms

@check @regression @security @permissions @local @development
Scenario Outline:Check that a Content editor is refused the status report
5

Given I am a logged in user with the "Content editor" user 1s 978ms

Then I should see "Log out" 4ms

When I go to "/admin/reports/status" 688ms

And I wait until the page is loaded 3ms

Then I should see "You are not authorized to access this page." 3ms

@check @regression @slow @security @permissions @local @development
Scenario:Check that an SEO admin authors content but cannot reach Drupal Canvas
14

Given I am a logged in user with the "SEO admin" user 7s 104ms

Then I should see "Log out" 5ms

When I go to "/node/add/blog" 12s 50ms

And I wait until the page is loaded 5s 6ms

Then "h1" should have text "Create Blog post" within 10 seconds 2ms

When I go to "/admin/content" 5s 895ms

And I wait until the page is loaded 5ms

Then "h1" should have text "Content" within 10 seconds 1ms

When I go to "/admin/content/pages" 6s 20ms

And I wait until the page is loaded 4ms

Then I should see "You are not authorized to access this page." 3ms

When I go to "/canvas/editor/canvas_page/1" 10s 646ms

And I wait until the page is loaded 4ms

Then I should see "You are not authorized to access this page." 3ms

@check @regression @security @permissions @local @development
Scenario:Check that a Site admin administers people and the Canvas pages
12

Given I am a logged in user with the "Site admin" user 2s 85ms

Then I should see "Log out" 5ms

When I go to "/admin/people" 14s 878ms

And I wait until the page is loaded 4ms

Then "h1" should have text "People" within 10 seconds 1ms

When I go to "/admin/structure/taxonomy" 927ms

And I wait until the page is loaded 3ms

Then "h1" should have text "Taxonomy" within 10 seconds 1ms

When I go to "/admin/content/pages" 5s 945ms

And I wait until the page is loaded 3ms

Then "h1" should have text "Pages" within 10 seconds 1ms

And I should see "Home" 4ms

@check @regression @fast @security @permissions @local @development
Scenario Outline:Check that a Site admin is refused the modules page
5

Given I am a logged in user with the "Site admin" user 2s 19ms

Then I should see "Log out" 5ms

When I go to "/admin/modules" 714ms

And I wait until the page is loaded 4ms

Then I should see "You are not authorized to access this page." 2ms

@check @regression @fast @security @permissions @local @development
Scenario Outline:Check that a Site admin is refused the appearance page
5

Given I am a logged in user with the "Site admin" user 2s 9ms

Then I should see "Log out" 5ms

When I go to "/admin/appearance" 719ms

And I wait until the page is loaded 3ms

Then I should see "You are not authorized to access this page." 3ms

@check @regression @fast @security @permissions @local @development
Scenario Outline:Check that a Site admin is refused content type admin
5

Given I am a logged in user with the "Site admin" user 1s 993ms

Then I should see "Log out" 5ms

When I go to "/admin/structure/types" 703ms

And I wait until the page is loaded 4ms

Then I should see "You are not authorized to access this page." 3ms

@check @regression @fast @security @permissions @local @development
Scenario Outline:Check that a Site admin is refused the status report
5

Given I am a logged in user with the "Site admin" user 2s 11ms

Then I should see "Log out" 5ms

When I go to "/admin/reports/status" 719ms

And I wait until the page is loaded 4ms

Then I should see "You are not authorized to access this page." 3ms

@check @regression @slow @security @permissions @local @development
Scenario:Check that a Content admin administers taxonomy but not users or modules
14

Given I am a logged in user with the "Content admin" user 2s 47ms

Then I should see "Log out" 5ms

When I go to "/admin/structure/taxonomy" 729ms

And I wait until the page is loaded 3ms

Then "h1" should have text "Taxonomy" within 10 seconds 1ms

When I go to "/node/add/blog" 6s 938ms

And I wait until the page is loaded 5s 6ms

Then "h1" should have text "Create Blog post" within 10 seconds 2ms

When I go to "/admin/people" 722ms

And I wait until the page is loaded 3ms

Then I should see "You are not authorized to access this page." 3ms

When I go to "/admin/modules" 691ms

And I wait until the page is loaded 3ms

Then I should see "You are not authorized to access this page." 2ms

@check @regression @slow @security @permissions @local @development
Scenario:Check that a Normal user may read the site and nothing more
8

Given I am a logged in user with the "Normal user" user 10s 602ms

Then I should see "Log out" 3ms

When I go to "/countries" 10s 555ms

And I wait until the page is loaded 647ms

Then I should see "Colombia" 8ms

When I go to "/programs" 9s 754ms

And I wait until the page is loaded 5ms

Then I should see "Women" 5ms

@check @regression @security @permissions @local @development
Scenario Outline:Check that a Normal user is refused the administration
5

Given I am a logged in user with the "Normal user" user 5s 479ms

Then I should see "Log out" 3ms

When I go to "/admin" 5s 760ms

And I wait until the page is loaded 3ms

Then I should see "You are not authorized to access this page." 2ms

@check @regression @security @permissions @local @development
Scenario Outline:Check that a Normal user is refused the content listing
5

Given I am a logged in user with the "Normal user" user 5s 460ms

Then I should see "Log out" 3ms

When I go to "/admin/content" 679ms

And I wait until the page is loaded 4ms

Then I should see "You are not authorized to access this page." 2ms

@check @regression @security @permissions @local @development
Scenario Outline:Check that a Normal user is refused the media overview
5

Given I am a logged in user with the "Normal user" user 5s 466ms

Then I should see "Log out" 3ms

When I go to "/admin/content/media" 679ms

And I wait until the page is loaded 3ms

Then I should see "You are not authorized to access this page." 2ms

@check @regression @security @permissions @local @development
Scenario Outline:Check that a Normal user is refused the Canvas pages
5

Given I am a logged in user with the "Normal user" user 5s 473ms

Then I should see "Log out" 3ms

When I go to "/admin/content/pages" 671ms

And I wait until the page is loaded 3ms

Then I should see "You are not authorized to access this page." 2ms

@check @regression @security @permissions @local @development
Scenario Outline:Check that a Normal user is refused the Blog post form
5

Given I am a logged in user with the "Normal user" user 5s 457ms

Then I should see "Log out" 3ms

When I go to "/node/add/blog" 677ms

And I wait until the page is loaded 3ms

Then I should see "You are not authorized to access this page." 2ms

@check @regression @security @permissions @local @development
Scenario Outline:Check that a Normal user is refused the Country form
5

Given I am a logged in user with the "Normal user" user 5s 469ms

Then I should see "Log out" 3ms

When I go to "/node/add/country" 674ms

And I wait until the page is loaded 3ms

Then I should see "You are not authorized to access this page." 2ms

@check @regression @security @permissions @local @development
Scenario Outline:Check that a Normal user is refused the people listing
5

Given I am a logged in user with the "Normal user" user 5s 477ms

Then I should see "Log out" 4ms

When I go to "/admin/people" 685ms

And I wait until the page is loaded 3ms

Then I should see "You are not authorized to access this page." 2ms

@check @regression @slow @security @permissions @local @development
Scenario Outline:Check that a Super admin reaches the content listing
6

Given I am a logged in user with the "Super admin" user 7s 512ms

Then I should see "Log out" 7ms

When I go to "/admin/content" 10s 872ms

And I wait until the page is loaded 4ms

Then "h1" should have text "Content" within 10 seconds 2ms

And I should not see "You are not authorized to access this page." 3ms

@check @regression @slow @security @permissions @local @development
Scenario Outline:Check that a Super admin reaches the Canvas pages
6

Given I am a logged in user with the "Super admin" user 2s 67ms

Then I should see "Log out" 6ms

When I go to "/admin/content/pages" 5s 795ms

And I wait until the page is loaded 4ms

Then "h1" should have text "Pages" within 10 seconds 1ms

And I should not see "You are not authorized to access this page." 2ms

@check @regression @slow @security @permissions @local @development
Scenario Outline:Check that a Super admin reaches the Country form
6

Given I am a logged in user with the "Super admin" user 2s 55ms

Then I should see "Log out" 6ms

When I go to "/node/add/country" 15s 143ms

And I wait until the page is loaded 4ms

Then "h1" should have text "Create Country" within 10 seconds 2ms

And I should not see "You are not authorized to access this page." 3ms

@check @regression @slow @security @permissions @local @development
Scenario Outline:Check that a Super admin reaches the Program form
6

Given I am a logged in user with the "Super admin" user 2s 65ms

Then I should see "Log out" 6ms

When I go to "/node/add/program" 7s 790ms

And I wait until the page is loaded 4ms

Then "h1" should have text "Create Program" within 10 seconds 2ms

And I should not see "You are not authorized to access this page." 3ms

@check @regression @slow @security @permissions @local @development
Scenario Outline:Check that a Super admin reaches the people listing
6

Given I am a logged in user with the "Super admin" user 2s 75ms

Then I should see "Log out" 6ms

When I go to "/admin/people" 9s 849ms

And I wait until the page is loaded 4ms

Then "h1" should have text "People" within 10 seconds 1ms

And I should not see "You are not authorized to access this page." 4ms

@check @regression @slow @security @permissions @local @development
Scenario Outline:Check that a Super admin reaches the modules page
6

Given I am a logged in user with the "Super admin" user 2s 57ms

Then I should see "Log out" 6ms

When I go to "/admin/modules" 11s 630ms

And I wait until the page is loaded 8ms

Then "h1" should have text "Extend" within 10 seconds 5ms

And I should not see "You are not authorized to access this page." 29ms

As a site visitor
I want a search control in the header of every page
So that I can look something up without first finding a search page.

@check @smoke @acceptance @critical @local @development @staging @production @navigation @search
Scenario:Check the header carries a search toggle on the home page
6

Given I am an anonymous user 6s 739ms

When I go to "/home" 694ms

And I wait until the page is loaded 4ms

Then "header[role='banner'] .icon-toggle__button" should have a count of 1 3ms

And "header[role='banner'] .icon-toggle__button" should be visible 2ms

And "header[role='banner'] .icon-toggle__button" should have attribute "aria-expanded" with value "false" 2ms

@check @regression @local @development @staging @production @navigation @search
Scenario:Check the header search box is hidden until the toggle is used
5

Given I am an anonymous user 697ms

When I go to "/home" 669ms

And I wait until the page is loaded 4ms

Then "header[role='banner'] .icon-toggle__panel" should be hidden 2ms

And "header[role='banner'] .icon-toggle__panel input[name='keywords']" should not be visible 2ms

@check @acceptance @critical @local @development @staging @production @navigation @search
Scenario:Check the toggle opens the panel and reveals the search box
7

Given I am an anonymous user 694ms

When I go to "/home" 668ms

And I wait until the page is loaded 4ms

And I click on the element "header[role='banner'] .icon-toggle__button" 335ms

Then "header[role='banner'] .icon-toggle__panel" should be visible within 10 seconds 1ms

And "header[role='banner'] .icon-toggle__panel input[name='keywords']" should be visible 1ms

And "header[role='banner'] .icon-toggle__button" should have attribute "aria-expanded" with value "true" 1ms

@check @exploratory @local @development @staging @production @navigation @search
Scenario:Verify the bar closes again and gives the header back
10

Given I am an anonymous user 690ms

When I go to "/home" 666ms

And I wait until the page is loaded 3ms

And I click on the element "header[role='banner'] .icon-toggle__button" 335ms

Then "header[role='banner'] .icon-toggle__panel" should be visible within 10 seconds 1ms

And "header[role='banner'] .icon-toggle__close" should be visible 1ms

When I click on the element "header[role='banner'] .icon-toggle__close" 321ms

Then "header[role='banner'] .icon-toggle__panel" should be hidden within 10 seconds 1ms

And "header[role='banner'] .icon-toggle__button" should be visible 1ms

And "header[role='banner'] .icon-toggle__button" should have attribute "aria-expanded" with value "false" 1ms

@check @acceptance @critical @local @development @staging @production @navigation @search
Scenario:Check searching from the header lands on the results page carrying the query
12

Given I am an anonymous user 690ms

When I go to "/home" 667ms

And I wait until the page is loaded 3ms

And I click on the element "header[role='banner'] .icon-toggle__button" 331ms

Then "header[role='banner'] .icon-toggle__panel input[name='keywords']" should be visible within 10 seconds 1ms

When I fill in the field "header[role='banner'] .icon-toggle__panel input[name='keywords']" with "water" 311ms

And I press the key "Enter" on the element "header[role='banner'] .icon-toggle__panel input[name='keywords']" 2s 715ms

And I wait until the page is loaded 4ms

Then the url should match "/search" < 1ms

And the url should match "keywords=water" < 1ms

And ".view-search-results" should be visible 1ms

And ".view-search-results input[name='keywords']" should have value "water" 2ms

@check @regression @local @development @staging @production @navigation @search
Scenario Outline:Check the header search toggle is present on /countries
5

Given I am an anonymous user 691ms

When I go to "/countries" 6s 284ms

And I wait until the page is loaded 4ms

Then "header[role='banner'] .icon-toggle__button" should have a count of 1 1ms

And "header[role='banner'] .icon-toggle__button" should be visible 1ms

@check @regression @local @development @staging @production @navigation @search
Scenario Outline:Check the header search toggle is present on /programs
5

Given I am an anonymous user 691ms

When I go to "/programs" 1s 451ms

And I wait until the page is loaded 3ms

Then "header[role='banner'] .icon-toggle__button" should have a count of 1 1ms

And "header[role='banner'] .icon-toggle__button" should be visible 1ms

@check @regression @local @development @staging @production @navigation @search
Scenario Outline:Check the header search toggle is present on /resources
5

Given I am an anonymous user 691ms

When I go to "/resources" 1s 793ms

And I wait until the page is loaded 3ms

Then "header[role='banner'] .icon-toggle__button" should have a count of 1 1ms

And "header[role='banner'] .icon-toggle__button" should be visible 1ms

@check @regression @local @development @staging @production @navigation @search
Scenario Outline:Check the header search toggle is present on /events
5

Given I am an anonymous user 686ms

When I go to "/events" 1s 361ms

And I wait until the page is loaded 3ms

Then "header[role='banner'] .icon-toggle__button" should have a count of 1 1ms

And "header[role='banner'] .icon-toggle__button" should be visible 1ms

As a site visitor
I want the search results page to name itself, keep its search box in reach and list one result per row
So that I can read what was found and refine the query without leaving the page.

@check @acceptance @critical @local @development @staging @production @search
Scenario:Check the results page names itself with a single top-level heading
5

Given I am an anonymous user 689ms

When I go to "/search?keywords=water" 565ms

And I wait until the page is loaded 3ms

Then "main h1" should have a count of 1 1ms

And "main h1" should have text "Search" 1ms

@check @acceptance @critical @local @development @staging @production @search
Scenario:Check the results page shows its search box inline above the results
10

Given I am an anonymous user 686ms

When I go to "/search?keywords=water" 564ms

And I wait until the page is loaded 3ms

Then ".view-search-results .views-exposed-form" should have a count of 1 1ms

And ".view-search-results .views-exposed-form" should be visible 1ms

And ".view-search-results .views-exposed-form" should have class "views-exposed-form--search" 1ms

And ".view-search-results input[name='keywords']" should be visible 1ms

And ".view-search-results .views-exposed-form .form-submit" should be visible 4ms

And the element ".view-search-results .views-exposed-form" should appear after the element "main h1" 5ms

And the element ".view-search-results .view-content" should appear after the element ".view-search-results .views-exposed-form" 4ms

@check @regression @local @development @staging @production @search
Scenario:Check the result summary sits under the search box
5

Given I am an anonymous user 691ms

When I go to "/search?keywords=water" 570ms

And I wait until the page is loaded 5ms

Then I should see text matching "Showing 1-\d+ of \d+" 2ms

And the element ".view-search-results .view-header" should appear after the element ".view-search-results .views-exposed-form" 11ms

@check @acceptance @critical @local @development @staging @production @search
Scenario:Check no result row carries a second or an empty heading
7

Given I am an anonymous user 690ms

When I go to "/search?keywords=water" 569ms

And I wait until the page is loaded 3ms

Then ".view-search-results .views-row" should be visible 1ms

And ".view-search-results .views-row:has(h2:nth-of-type(2))" should have a count of 0 1ms

And ".view-search-results .views-row:not(:has(h2))" should have a count of 0 1ms

And ".view-search-results .views-row h2:empty" should have a count of 0 1ms

@check @acceptance @critical @local @development @staging @production @search
Scenario:Check every result row carries exactly one link, on its heading
5

Given I am an anonymous user 695ms

When I go to "/search?keywords=water" 571ms

And I wait until the page is loaded 3ms

Then ".view-search-results .views-row:not(:has(h2 a))" should have a count of 0 2ms

And ".view-search-results .views-row:has(a:nth-of-type(2))" should have a count of 0 1ms

@check @acceptance @local @development @staging @production @search
Scenario:Check a result heading opens the item it names
10

Given I am an anonymous user 731ms

When I go to "/search?keywords=water" 589ms

And I wait until the page is loaded 3ms

Then ".view-search-results .views-row:first-child h2 a" should be visible 2ms

When I click on the element ".view-search-results .views-row:first-child h2 a" 1s 445ms

And I wait until the page is loaded 5s 10ms

Then the url should not match "/search" < 1ms

And "main h1" should have a count of 1 2ms

And I should not see "Page not found" 4ms

And I should not see "Access denied" 3ms

@check @regression @local @development @staging @production @search
Scenario:Check every result row carries the same spacing
5

Given I am an anonymous user 693ms

When I go to "/search?keywords=water" 575ms

And I wait until the page is loaded 10ms

Then ".view-search-results .views-row" should be visible 2ms

And ".view-search-results .views-row:not(.mb-5)" should have a count of 0 1ms

@check @acceptance @local @development @staging @production @search
Scenario:Check a new keyword typed on the results page re-runs the search
9

Given I am an anonymous user 699ms

When I go to "/search?keywords=water" 586ms

And I wait until the page is loaded 5ms

And I fill in the field ".view-search-results input[name='keywords']" with "education" 314ms

And I click on the element ".view-search-results .views-exposed-form .form-submit" 1s 940ms

And I wait until the page is loaded 5ms

Then the url should match "keywords=education" < 1ms

And ".view-search-results input[name='keywords']" should have value "education" 2ms

And ".view-search-results .views-row" should be visible 1ms

As a site visitor
I want a search that found nothing to say so, and a search that found a lot to page
So that neither outcome leaves me looking at a page that seems broken.

@check @exploratory @critical @local @development @staging @production @search
Scenario:Check a query that matches nothing says so instead of showing an empty page
8

Given I am an anonymous user 699ms

When I go to "/search?keywords=telescope" 702ms

And I wait until the page is loaded 4ms

Then "main h1" should have a count of 1 1ms

And ".view-search-results .view-empty" should be visible 1ms

And I should see "There are no results for your search, please try another query." 2ms

And ".view-search-results .views-row" should have a count of 0 1ms

And I don't see pagination 1ms

@check @regression @a11y @local @development @staging @production @search
Scenario:Check the empty notice renders as a readable panel
5

Given I am an anonymous user 695ms

When I go to "/search?keywords=telescope" 571ms

And I wait until the page is loaded 3ms

Then ".view-search-results .view-empty--notice" should have a count of 1 1ms

And ".view-search-results .view-empty--notice" should be visible 1ms

@check @acceptance @local @development @staging @production @search
Scenario:Check the search box stays usable after a query that found nothing
10

Given I am an anonymous user 697ms

When I go to "/search?keywords=telescope" 567ms

And I wait until the page is loaded 4ms

Then ".view-search-results input[name='keywords']" should be visible 2ms

And ".view-search-results input[name='keywords']" should have value "telescope" 1ms

When I fill in the field ".view-search-results input[name='keywords']" with "water" 310ms

And I click on the element ".view-search-results .views-exposed-form .form-submit" 600ms

And I wait until the page is loaded 5ms

Then ".view-search-results .views-row" should be visible 1ms

And I should not see "There are no results for your search, please try another query." 2ms

@check @exploratory @local @development @staging @production @search
Scenario:Check the results page with no query asks for a keyword
9

Given I am an anonymous user 694ms

When I go to "/search" 726ms

And I wait until the page is loaded 3ms

Then "main h1" should have a count of 1 1ms

And I should not see "Page not found" 2ms

And ".view-search-results input[name='keywords']" should be visible 1ms

And ".view-search-results input[name='keywords']" should have value "" 1ms

And I should see "Enter a keyword to search Horizon Aid." 2ms

And ".view-search-results .views-row" should have a count of 0 1ms

@check @acceptance @local @development @staging @production @search
Scenario:Check paging the results moves the range on and keeps the query
12

Given I am an anonymous user 698ms

When I go to "/search?keywords=the" 2s 366ms

And I wait until the page is loaded 4ms

Then I see visible pagination 2ms

And I should see text matching "Showing 1-10 of \d+" 1ms

When I click on the link with the title "Go to page 2" 1s 790ms

And I wait until the page is loaded 4ms

Then the url should match "page=1" < 1ms

And the url should match "keywords=the" < 1ms

And I should see text matching "Showing 11-\d+ of \d+" 1ms

And I should not see text matching "Showing 1-10 of" < 1ms

And ".view-search-results input[name='keywords']" should have value "the" 2ms