+
+
+
diff --git a/examples/nuxt-app/layers/example-data-driven-component/nuxt.config.ts b/examples/nuxt-app/layers/example-data-driven-component/nuxt.config.ts
new file mode 100644
index 0000000000..f716d9f9da
--- /dev/null
+++ b/examples/nuxt-app/layers/example-data-driven-component/nuxt.config.ts
@@ -0,0 +1,3 @@
+import { defineNuxtConfig } from 'nuxt/config'
+
+export default defineNuxtConfig({})
diff --git a/examples/nuxt-app/layers/fixture-api/README.md b/examples/nuxt-app/layers/fixture-api/README.md
index fcc835c60e..8bd0b85231 100644
--- a/examples/nuxt-app/layers/fixture-api/README.md
+++ b/examples/nuxt-app/layers/fixture-api/README.md
@@ -9,3 +9,5 @@ No backend is needed, the API is stubbed with flat file json fixtures (also used
2. [_fixture/tide-site](http://localhost:3000/_fixture/tide-site) Fixtures page content, but uses back end for site content
3. [_fixture/page-exposed](http://localhost:3000/_fixture/page-exposed) Fixtures both page and site content, expose all layout slots
+
+4. [_fixture/document](http://localhost:3000/_fixture/document) Edge case example for cheerio rendering
diff --git a/examples/nuxt-app/nuxt.config.ts b/examples/nuxt-app/nuxt.config.ts
index b306f8f431..d6843d3316 100644
--- a/examples/nuxt-app/nuxt.config.ts
+++ b/examples/nuxt-app/nuxt.config.ts
@@ -25,11 +25,20 @@ export default defineNuxtConfig({
'./layers/example-components',
'./layers/fixture-api',
'./layers/map-features',
- './layers/ripple-ui-forms-ext'
+ './layers/ripple-ui-forms-ext',
+ './layers/example-data-driven-component'
],
// Nuxt devtools
sourcemap: true,
devtools: {
enabled: false
+ },
+ // Vite HMR temporary fix - see https://github.com/nuxt/nuxt/discussions/27779
+ vite: {
+ server: {
+ hmr: {
+ clientPort: 3000
+ }
+ }
}
})
diff --git a/examples/nuxt-app/public/placeholders/mapbg.png b/examples/nuxt-app/public/placeholders/mapbg.png
new file mode 100644
index 0000000000..1f86771dfc
Binary files /dev/null and b/examples/nuxt-app/public/placeholders/mapbg.png differ
diff --git a/examples/nuxt-app/test/features/landingpage/forms.feature b/examples/nuxt-app/test/features/landingpage/forms.feature
index 55e63b0822..25e009eb81 100644
--- a/examples/nuxt-app/test/features/landingpage/forms.feature
+++ b/examples/nuxt-app/test/features/landingpage/forms.feature
@@ -23,6 +23,8 @@ Feature: Forms
| required |
| true |
Then a select field with the label "Term select" should exist
+ Then a select field with the label "Searchable single select" should exist
+ Then a select field with the label "Searchable multi select" should exist
Then a radio group field with the label "Type of person" should exist with the following options
| label |
| Dog person |
@@ -58,11 +60,12 @@ Feature: Forms
Then the error summary should not display
When I submit the form with ID "full_form"
Then the error summary should display with the following errors
- | text | url |
- | You must enter your first name | /kitchen-sink#first_name |
- | The message field is required | /kitchen-sink#message |
- | Must choose a favourite colour | /kitchen-sink#favourite_colour |
- | You must accept the terms | /kitchen-sink#i_accept_the_terms |
+ | text | url |
+ | You must enter your first name | /kitchen-sink#first_name |
+ | The message field is required | /kitchen-sink#message |
+ | Must choose a favourite colour | /kitchen-sink#favourite_colour |
+ | The searchable single select is required | /kitchen-sink#searchable_single_select |
+ | You must accept the terms | /kitchen-sink#i_accept_the_terms |
Then clicking on an error summary link with text "Must choose a favourite colour" should focus on the input with ID "favourite_colour"
And the dataLayer should include the following events
@@ -79,13 +82,16 @@ Feature: Forms
And the form with ID "full_form" should exist
Then the input with the label "First name" should be valid
+ And the select with the label "Searchable single select" should be valid
When I submit the form with ID "full_form"
Then the input with the label "First name" should be invalid with message "You must enter your first name"
+ And the select with the label "Searchable single select" should be invalid with message "The searchable single select is required"
When I type "Cat" into the input with the label "First name"
- Then the input with the label "First name" should be invalid with message "You must enter your first name"
+ And I select "Orange" by searching the select field with label "Searchable single select"
When I submit the form with ID "full_form"
Then the input with the label "First name" should be valid
+ Then the select with the label "Searchable single select" should be valid
@mockserver
Scenario: Form submission - Error
@@ -101,6 +107,7 @@ Feature: Forms
And I type "Here is some text to go in the textarea field" into the textarea with the label "Message"
And I click "Green" from the select field with label "Favourite colour"
And I toggle the checkbox with label "Terms and conditions"
+ And I click "Orange" from the select field with label "Searchable single select"
When I submit the form with ID "full_form"
@@ -126,6 +133,10 @@ Feature: Forms
And I type "0400 000 000" into the input with the label "Mobile phone"
And I type "Here is some text to go in the textarea field" into the textarea with the label "Message"
And I click "Green" from the select field with label "Favourite colour"
+ And I select "Mango" by searching the select field with label "Searchable single select"
+ And I select the following options by searching for "Ap" the select field with label "Searchable multi select"
+ | Aprium |
+ | Apricot |
And I click "Free admission" from the select field with label "Term select"
And I click "Seniors" from the select field with label "Term select"
And I click "Dog person" from the radio group with label "Type of person"
@@ -140,24 +151,29 @@ Feature: Forms
| success | Server success | Test success message |
And the dataLayer should include the following events
- | event | label | form_id | field_id | type | value | component |
- | update_form_field | First name | full_form | first_name | text | [redacted] | rpl-form-input |
- | update_form_field | Last name | full_form | last_name | text | [redacted] | rpl-form-input |
- | update_form_field | Email | full_form | email | email | [redacted] | rpl-form-input |
- | update_form_field | Quantity | full_form | quantity | number | [redacted] | rpl-form-number |
- | update_form_field | Website | full_form | website | url | [redacted] | rpl-form-input |
- | update_form_field | Mobile phone | full_form | mobile_phone | tel | [redacted] | rpl-form-input |
- | update_form_field | Message | full_form | message | textarea | [redacted] | rpl-form-textarea |
- | open_form_field | Favourite colour | full_form | favourite_colour | select | | rpl-form-dropdown |
- | update_form_field | Favourite colour | full_form | favourite_colour | select | Green | rpl-form-dropdown |
- | open_form_field | Term select | full_form | term_select | select | | rpl-form-dropdown |
- | update_form_field | Term select | full_form | term_select | select | Free admission | rpl-form-dropdown |
- | open_form_field | Term select | full_form | term_select | select | Free admission | rpl-form-dropdown |
- | update_form_field | Term select | full_form | term_select | select | Free admission,Seniors | rpl-form-dropdown |
- | update_form_field | Type of person | full_form | person_type | radio | Dog person | rpl-form-radio-group |
- | update_form_field | Favourite Locations | full_form | favourite_locations | checkbox | London | rpl-form-checkbox-group |
- | update_form_field | Favourite Locations | full_form | favourite_locations | checkbox | London,Tokyo | rpl-form-checkbox-group |
- | update_form_field | I accept the terms | full_form | i_accept_the_terms__checkbox | checkbox | true | rpl-form-option |
+ | event | label | form_id | field_id | type | value | component |
+ | update_form_field | First name | full_form | first_name | text | [redacted] | rpl-form-input |
+ | update_form_field | Last name | full_form | last_name | text | [redacted] | rpl-form-input |
+ | update_form_field | Email | full_form | email | email | [redacted] | rpl-form-input |
+ | update_form_field | Quantity | full_form | quantity | number | [redacted] | rpl-form-number |
+ | update_form_field | Website | full_form | website | url | [redacted] | rpl-form-input |
+ | update_form_field | Mobile phone | full_form | mobile_phone | tel | [redacted] | rpl-form-input |
+ | update_form_field | Message | full_form | message | textarea | [redacted] | rpl-form-textarea |
+ | open_form_field | Favourite colour | full_form | favourite_colour | select | | rpl-form-dropdown |
+ | update_form_field | Favourite colour | full_form | favourite_colour | select | Green | rpl-form-dropdown |
+ | open_form_field | Searchable single select | full_form | searchable_single_select | select | | rpl-form-dropdown |
+ | update_form_field | Searchable single select | full_form | searchable_single_select | select | Mango | rpl-form-dropdown |
+ | open_form_field | Searchable multi select | full_form | searchable_multi_select | select | | rpl-form-dropdown |
+ | update_form_field | Searchable multi select | full_form | searchable_multi_select | select | Aprium | rpl-form-dropdown |
+ | update_form_field | Searchable multi select | full_form | searchable_multi_select | select | Apricot | rpl-form-dropdown |
+ | open_form_field | Term select | full_form | term_select | select | | rpl-form-dropdown |
+ | update_form_field | Term select | full_form | term_select | select | Free admission | rpl-form-dropdown |
+ | open_form_field | Term select | full_form | term_select | select | Free admission | rpl-form-dropdown |
+ | update_form_field | Term select | full_form | term_select | select | Free admission,Seniors | rpl-form-dropdown |
+ | update_form_field | Type of person | full_form | person_type | radio | Dog person | rpl-form-radio-group |
+ | update_form_field | Favourite Locations | full_form | favourite_locations | checkbox | London | rpl-form-checkbox-group |
+ | update_form_field | Favourite Locations | full_form | favourite_locations | checkbox | London,Tokyo | rpl-form-checkbox-group |
+ | update_form_field | I accept the terms | full_form | i_accept_the_terms__checkbox | checkbox | true | rpl-form-option |
And the dataLayer should include the following events
| event | form_id | form_valid | element_text | component |
@@ -165,19 +181,20 @@ Feature: Forms
| form_complete | full_form | | Submit | rpl-form |
And the dataLayer form data for "form_complete" should include the following values
- | key | value |
- | first_name | [redacted] |
- | last_name | [redacted] |
- | role | [redacted] |
- | email | [redacted] |
- | quantity | [redacted] |
- | website | [redacted] |
- | mobile_phone | [redacted] |
- | dob | [redacted] |
- | message | [redacted] |
- | favourite_colour | Green |
- | term_select | Free admission,Seniors |
- | person_type | Dog person |
- | favourite_locations | London,Tokyo |
- | i_accept_the_terms | true |
- | site_section | DPC |
+ | key | value |
+ | first_name | [redacted] |
+ | last_name | [redacted] |
+ | role | [redacted] |
+ | email | [redacted] |
+ | quantity | [redacted] |
+ | website | [redacted] |
+ | mobile_phone | [redacted] |
+ | dob | [redacted] |
+ | message | [redacted] |
+ | favourite_colour | Green |
+ | searchable_single_select | Mango |
+ | term_select | Free admission,Seniors |
+ | person_type | Dog person |
+ | favourite_locations | London,Tokyo |
+ | i_accept_the_terms | true |
+ | site_section | DPC |
diff --git a/examples/nuxt-app/test/features/landingpage/page-components.feature b/examples/nuxt-app/test/features/landingpage/page-components.feature
index 390611ceee..e3c378f2a1 100644
--- a/examples/nuxt-app/test/features/landingpage/page-components.feature
+++ b/examples/nuxt-app/test/features/landingpage/page-components.feature
@@ -209,3 +209,9 @@ Feature: Home page
Then the dataLayer should include the following events
| event | element_id | element_text | label | file_name | file_extension | type | component |
| file_download | page-component-1951 | Download it | Complex image | medium.png | png | image | rpl-media-embed |
+
+ @mockserver
+ Scenario: Page component - Data driven component
+ Then a custom data driven component with ID "3553540" should exist with title "Test data driven title" and have the properties
+ | description | testCustomProp |
+ | Test data driven desc | testCustomValue |
diff --git a/examples/nuxt-app/test/features/maps/map-search-banner.feature b/examples/nuxt-app/test/features/maps/map-search-banner.feature
new file mode 100644
index 0000000000..71f27317ff
--- /dev/null
+++ b/examples/nuxt-app/test/features/maps/map-search-banner.feature
@@ -0,0 +1,54 @@
+Feature: Map search banner
+
+ Background:
+ Given the site endpoint returns fixture "/site/reference" with status 200
+
+ @mockserver
+ Example: Map search banner - Content
+ Given the page endpoint for path "/search-bar-example" returns fixture "/maps/example-map-search-banner" with status 200
+ And I am using a "macbook-16" device
+ Then I visit the page "/search-bar-example"
+ Then the location search banner should have the following content
+ | title | description | inputLabel | placeholder | image |
+ | Test search heading | Test introduction text | Test label | Test placeholder | /placeholders/mapbg.png |
+
+ @mockserver
+ Scenario: Map search banner - Custom suggestions
+ Given I load the page fixture with "/maps/example-map-search-banner"
+ Given the page endpoint for path "/search-bar-example" returns the loaded fixture
+ Given the "/api/tide/elasticsearch/elasticsearch_index_develop_node/_search" network request is stubbed with fixture "/maps/simple-map-results" and status 200 as alias "searchReq"
+ Given I visit the page "/search-bar-example"
+ And I wait 2 seconds
+ And I type "bays" into the location search bar
+ And I wait 2 seconds
+ And the search suggestions displayed should include
+ | Test location - testValue - 1 |
+ | Test location - testValue - 2 |
+ | With magic key |
+ And I click the search suggestion labelled "Test location - testValue - 1"
+ Then the current path should be "/test/target/url"
+ Then the URL should reflect that the location has the following:
+ | key | value |
+ | id | 1 |
+ | name | Test location - testValue - 1 |
+
+ @mockserver
+ Scenario: Map search banner - Suggestions with ArcGIS magic keys
+ Given the ArcGIS findAddressCandidates endpoint returns "/maps/arcgis-address-candidates" fixture
+ Given I load the page fixture with "/maps/example-map-search-banner"
+ Given the page endpoint for path "/search-bar-example" returns the loaded fixture
+ Given the "/api/tide/elasticsearch/elasticsearch_index_develop_node/_search" network request is stubbed with fixture "/maps/simple-map-results" and status 200 as alias "searchReq"
+ Given I visit the page "/search-bar-example"
+ And I wait 2 seconds
+ And I type "bays" into the location search bar
+ And I wait 2 seconds
+ And the search suggestions displayed should include
+ | Test location - testValue - 1 |
+ | Test location - testValue - 2 |
+ | With magic key |
+ And I click the search suggestion labelled "With magic key"
+ Then the current path should be "/test/target/url"
+ Then the URL should reflect that the location has the following:
+ | key | value |
+ | id | fake1234 |
+ | name | 1234 Fake St Fakeville Vic 3000 |
diff --git a/examples/nuxt-app/test/features/publication/publication.feature b/examples/nuxt-app/test/features/publication/publication.feature
index c9bb405b8f..56221e18f6 100644
--- a/examples/nuxt-app/test/features/publication/publication.feature
+++ b/examples/nuxt-app/test/features/publication/publication.feature
@@ -57,7 +57,10 @@ Feature: Publication page
Example: Publication print all
Given the endpoint "/api/tide/publication-children" with query "?ids=4a6d9877-326a-4090-8f7d-51c79191c63b&ids=7f608818-51e5-4c42-831a-a51d46a41ff6&ids=3479556d-7daa-4bc4-985a-d0ec1d954713&ids=a805aea1-6b50-4327-b176-ff4468775ad6&ids=c17daa15-9ad8-412d-a049-aa1ef6c668c2&ids=f85fab41-8217-44c4-bb0d-29ab5bc2832c&ids=c83e001c-2429-4c87-a53c-62a96ee426c6&ids=d51a4112-fd63-42cb-91a6-c17057c25242&ids=095e703d-e8cc-4153-9cf4-13e8a4f095c9&ids=ad3fd4c8-60dc-4c0d-a55c-5137766a2056&ids=64d7c641-640d-46e9-9967-7ad49104d744&ids=463ebde6-f906-427e-adaa-e2c7dba9f875&ids=3218f7fa-e189-44a2-8fdb-fc750409c421&ids=c0bf3b7f-1819-4cdb-99e8-4fd50071adac&ids=bf8208e7-bbc7-40cf-b3c0-111e6caabd91&ids=e0ce9cb4-df4f-4ae9-84e6-b1589486cdc8&ids=03b2d101-d6d8-4e55-a3e4-cad2d08f625b&ids=181e7b7e-ad44-4451-843a-044d760aa18e&ids=9c4656a6-3294-4515-8a7e-e15cd32841b6&ids=fadb534c-9598-40d0-a211-ca4b8a7c140a&ids=556bcf1a-46d6-4565-87e5-79e1b4b31cc5&ids=133ddcfa-b7f7-431c-bc85-f59ba8f44eac&ids=ff6440cc-7605-4ff1-b8a1-f25a5797549f&ids=f197320e-e9e3-46c8-b402-43ddd409599a&ids=e6cdf8c8-c19a-419b-9bb1-22a0938bba58&ids=cf1bfe5d-929e-44e2-a542-18d8b9fcd234&ids=16ef10ae-d3e4-4217-9508-eb4981336a3e" returns fixture "/publication/sample-print-all" with status 200
When I visit the print all page "/victorian-skills-plan-2023-implementation-update/print-all"
- Then the in page navigation should include
+ Then the dataLayer should include the following events
+ | event | page_title |
+ | routeChange | Print - Victorian Skills Plan Implementation Update |
+ And the in page navigation should include
| title | url |
| The Victorian Skills Plan 2022 into 2023 actions and initiatives | /victorian-skills-plan-2023-implementation-update/2022-victorian-skills-plan-actions-and-initiatives |
| Promoting post-secondary education skills and career pathways | /victorian-skills-plan-2023-implementation-update/promoting-post-secondary-education-skills-and-career |
diff --git a/examples/nuxt-app/test/features/search-listing/filters.feature b/examples/nuxt-app/test/features/search-listing/filters.feature
index 3f87344d96..0866a0d89a 100644
--- a/examples/nuxt-app/test/features/search-listing/filters.feature
+++ b/examples/nuxt-app/test/features/search-listing/filters.feature
@@ -29,7 +29,7 @@ Feature: Search listing - Filter
Then the filters toggle should show 1 applied filters
When I toggle the search listing filters section
- Then the search listing dropdown field labelled "Raw filter example" should have the value "Dogs, Birds"
+ Then the search listing dropdown field labelled "Raw filter example" should have the value "Birds, Dogs"
@mockserver
Example: Term filter - Should reflect a single value from the URL
@@ -37,11 +37,11 @@ Feature: Search listing - Filter
And the search network request is stubbed with fixture "/search-listing/filters/response" and status 200
And the current date is "Fri, 02 Feb 2050 03:04:05 GMT"
- When I visit the page "/filters?termFilter=Green&singleTermFilter=Aqua&checkboxFilter=Archived&checkboxFilterGroup=Weekdays"
+ When I visit the page "/filters?termFilter=Green&singleTermFilter=Aqua&checkboxFilter=Archived&checkboxFilterGroup=Weekdays&singleSearchDropdownFilter=Banana"
Then the search listing page should have 2 results
And the search network request should be called with the "/search-listing/filters/request-term-single" fixture
- Then the filters toggle should show 4 applied filters
+ Then the filters toggle should show 5 applied filters
When I toggle the search listing filters section
Then the search listing dropdown field labelled "Term filter example" should have the value "Green"
@@ -50,6 +50,8 @@ Feature: Search listing - Filter
And the search listing checkbox group labelled "Checkbox group" should have the following options checked
| label |
| Weekdays |
+ Then the search listing dropdown field labelled "Single search dropdown filter" should have the value "Banana"
+ And the search listing dropdown field labelled "Single search dropdown filter" should have the search text "Banana" when opened
@mockserver
Example: Term filter - Should reflect an array from the URL
@@ -57,18 +59,21 @@ Feature: Search listing - Filter
And the search network request is stubbed with fixture "/search-listing/filters/response" and status 200
And the current date is "Fri, 02 Feb 2050 03:04:05 GMT"
- When I visit the page "/filters?termFilter=Green&termFilter=Red&checkboxFilterGroup=Weekdays&checkboxFilterGroup=Weekends"
+ When I visit the page "/filters?termFilter=Green&termFilter=Red&checkboxFilterGroup=Weekdays&checkboxFilterGroup=Weekends&multiSearchDropdownFilter=Potato&multiSearchDropdownFilter=Onion"
Then the search listing page should have 2 results
And the search network request should be called with the "/search-listing/filters/request-term-array" fixture
- Then the filters toggle should show 2 applied filters
+ Then the filters toggle should show 3 applied filters
When I toggle the search listing filters section
- Then the search listing dropdown field labelled "Term filter example" should have the value "Red, Green"
+ Then the search listing dropdown field labelled "Term filter example" should have the value "Green, Red"
And the search listing checkbox group labelled "Checkbox group" should have the following options checked
| label |
| Weekdays |
| Weekends |
+ Then the select field labelled "Multi search dropdown filter" should have the following tags
+ | Potato |
+ | Onion |
@mockserver
Example: Terms (with an 's') - Should reflect a single value from the URL
@@ -98,7 +103,7 @@ Feature: Search listing - Filter
Then the filters toggle should show 1 applied filters
When I toggle the search listing filters section
- Then the search listing dropdown field labelled "Terms filter example" should have the value "Orange, Purple"
+ Then the search listing dropdown field labelled "Terms filter example" should have the value "Purple, Orange"
@mockserver
Example: Date range filter (single query value) - Should reflect the range value from the URL
@@ -162,7 +167,7 @@ Feature: Search listing - Filter
And the search network request is stubbed with fixture "/search-listing/filters/response" and status 200
And the current date is "Fri, 02 Feb 2050 03:04:05 GMT"
- When I visit the page "/filters?functionFilter=closed&functionFilter=open"
+ When I visit the page "/filters?functionFilter=open&functionFilter=closed"
Then the search listing page should have 2 results
And the search network request should be called with the "/search-listing/filters/request-function-filter" fixture
@@ -266,13 +271,32 @@ Feature: Search listing - Filter
| Yellow |
Then I click the option labelled "Purple" in the selected dropdown
And I click the search listing checkbox field labelled "Show archived content"
+ And I select "Mango" by searching the select field with label "Single search dropdown filter"
+ And I select the following options by searching for "Ca" the select field with label "Multi search dropdown filter"
+ | Carrot |
+ | Cabbage |
+
And I submit the search filters
Then the URL should reflect that the current active filters are as follows:
- | id | value |
- | q | the |
- | termFilter | Blue |
- | termsFilter | Orange |
- | checkboxFilter | Archived |
+ | id | value |
+ | q | the |
+ | termFilter | Blue |
+ | termsFilter | Orange |
+ | checkboxFilter | Archived |
+ | singleSearchDropdownFilter | Mango |
+ Then the URL should reflect that the current active filters are as follows:
+ | multiSearchDropdownFilter | Carrot |
+ | multiSearchDropdownFilter | Cabbage |
+
+ When I delete the text for the select field with label "Single search dropdown filter"
+ And I delete the following tags for the select field with label "Multi search dropdown filter"
+ | Carrot |
+ | Cabbage |
+
+ Then I submit the search filters
+ Then the URL should reflect that the current active filters are as follows:
+ | singleSearchDropdownFilter |
+ | multiSearchDropdownFilter |
@mockserver
Example: Dependent filter - Should reflect values from the URL
diff --git a/examples/nuxt-app/test/features/search-listing/grants.feature b/examples/nuxt-app/test/features/search-listing/grants.feature
index b03dc7ac4c..5bc320d898 100644
--- a/examples/nuxt-app/test/features/search-listing/grants.feature
+++ b/examples/nuxt-app/test/features/search-listing/grants.feature
@@ -13,14 +13,16 @@ Feature: Grants collection
And the search network request is stubbed with fixture "/search-listing/grants/response" and status 200
And the current date is "Fri, 02 Feb 2050 03:04:05 GMT"
When I visit the page "/grants"
- Then the search listing page should have 3 results
+ Then the search listing page should have 5 results
And the search listing layout should be "list"
And the search network request should be called with the "/search-listing/grants/request" fixture
And the grant search listing results should have following items:
- | title | url | updated | content | audience | amount | status |
- | THIS IS A TEST | /tc-9b-grant-page-closed | Updated: 9 May 2023 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam tincidunt sit amet ligula sit amet lacinia. In a leo nec tortor aliquet faucibus. | Business | $11,326 - $26,494 | Closed |
- | TC-9a Grant Simple Test - Date Range | /tc-9a-grant-simple-test-date-range | Updated: 9 May 2023 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam tincidunt sit amet ligula sit amet lacinia. In a leo nec tortor aliquet faucibus. | Not-for-profit groups, government | $11,326 - $26,494 | Open, closing in 163 days |
- | 2023 Coastcare Victoria Community Grants | https://www.marineandcoasts.vic.gov.au/coastcare-victoria-community-grants | Updated: 8 March 2023 | This year, Coastcare Victoria has $210,000 available for grants of up to $10,000 each. Projects will fit into one of three streams on offer including | Who can apply:Individuals, not-for-profit groups | $1 - $10,000 | Closed |
+ | title | url | content | audience | amount | status |
+ | THIS IS A TEST | /tc-9b-grant-page-closed | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam tincidunt sit amet ligula sit amet lacinia. In a leo nec tortor aliquet faucibus. | Business | $11,326 - $26,494 | Closed |
+ | TC-9a Grant Simple Test - Date Range | /tc-9a-grant-simple-test-date-range | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam tincidunt sit amet ligula sit amet lacinia. In a leo nec tortor aliquet faucibus. | Not-for-profit groups, government | $11,326 - $26,494 | Open, closes 16 July 2050 |
+ | 2023 Coastcare Victoria Community Grants | https://www.marineandcoasts.vic.gov.au/coastcare-victoria-community-grants | This year, Coastcare Victoria has $210,000 available for grants of up to $10,000 each. Projects will fit into one of three streams on offer including | Who can apply:Individuals, not-for-profit groups | $1 - $10,000 | Closed |
+ | Opening soon test | /opening-soon-test | Supporting schools to build strong VCE Vocational Major and Victorian Pathways Certificate delivery | Government schools | $0 - $30,000 | Opens 16 April 2050 |
+ | Youth Access Initiative | /youth-access-initiative | The Youth Access Initiative provides young people who have care and/or youth justice experience or who are residing in Education First Youth Foyers | Individuals | | Ongoing |
@mockserver
Example: Grant status filter - Open
@@ -28,7 +30,7 @@ Feature: Grants collection
And the search network request is stubbed with fixture "/search-listing/grants/response" and status 200
And the current date is "Fri, 02 Feb 2050 03:04:05 GMT"
When I visit the page "/grants?status=open"
- Then the search listing page should have 3 results
+ Then the search listing page should have 5 results
And the search network request should be called with the "/search-listing/grants/request-status-open" fixture
@mockserver
@@ -37,7 +39,7 @@ Feature: Grants collection
And the search network request is stubbed with fixture "/search-listing/grants/response" and status 200
And the current date is "Fri, 02 Feb 2050 03:04:05 GMT"
When I visit the page "/grants?status=closed"
- Then the search listing page should have 3 results
+ Then the search listing page should have 5 results
And the search network request should be called with the "/search-listing/grants/request-status-closed" fixture
@mockserver
@@ -46,7 +48,7 @@ Feature: Grants collection
And the search network request is stubbed with fixture "/search-listing/grants/response" and status 200
And the current date is "Fri, 02 Feb 2050 03:04:05 GMT"
When I visit the page "/grants?status=ongoing"
- Then the search listing page should have 3 results
+ Then the search listing page should have 5 results
And the search network request should be called with the "/search-listing/grants/request-status-ongoing" fixture
@mockserver
@@ -55,5 +57,5 @@ Feature: Grants collection
And the search network request is stubbed with fixture "/search-listing/grants/response" and status 200
And the current date is "Fri, 02 Feb 2050 03:04:05 GMT"
When I visit the page "/grants?status=opening_soon"
- Then the search listing page should have 3 results
+ Then the search listing page should have 5 results
And the search network request should be called with the "/search-listing/grants/request-status-opening-soon" fixture
diff --git a/examples/nuxt-app/test/features/site/search.feature b/examples/nuxt-app/test/features/site/search.feature
index 4a86154c6d..d281a6d79f 100644
--- a/examples/nuxt-app/test/features/site/search.feature
+++ b/examples/nuxt-app/test/features/site/search.feature
@@ -6,6 +6,9 @@ Feature: Site search
Given the "/api/tide/search/**" network request is delayed by 500 milliseconds and stubbed with fixture "/site/search-response", status 200 and alias "siteSearchReq"
When I visit the page "/search?q=demo"
Then the search listing skeleton should display 10 items with the class "tide-search-result-skeleton"
+ And the dataLayer should include the following events
+ | event | page_title | search_term |
+ | routeChange | Search | demo |
When I wait 500 milliseconds
Then the search listing page should have 5 results
diff --git a/examples/nuxt-app/test/features/sitemap/sitemap.feature b/examples/nuxt-app/test/features/sitemap/sitemap.feature
index cb1fcf5523..75e7ec712f 100644
--- a/examples/nuxt-app/test/features/sitemap/sitemap.feature
+++ b/examples/nuxt-app/test/features/sitemap/sitemap.feature
@@ -16,3 +16,6 @@ Feature: Sitemap
| Level 4 - Item 2 |
| Level 2 - Item 2 |
| Level 1 - Item 2 |
+ And the dataLayer should include the following events
+ | event | page_title |
+ | routeChange | Sitemap |
diff --git a/examples/nuxt-app/test/fixtures/landingpage/full-form.json b/examples/nuxt-app/test/fixtures/landingpage/full-form.json
index 8e06127c6b..356c25b422 100644
--- a/examples/nuxt-app/test/fixtures/landingpage/full-form.json
+++ b/examples/nuxt-app/test/fixtures/landingpage/full-form.json
@@ -228,6 +228,44 @@
},
"pii": false
},
+ {
+ "$formkit": "RplFormDropdown",
+ "key": "searchable_single_select",
+ "id": "searchable_single_select",
+ "name": "searchable_single_select",
+ "label": "Searchable single select",
+ "multiple": false,
+ "searchable": true,
+ "options": [
+ { "id": "apple", "value": "apple", "label": "Apple" },
+ { "id": "banana", "value": "banana", "label": "Banana" },
+ { "id": "orange", "value": "orange", "label": "Orange" },
+ { "id": "mango", "value": "mango", "label": "Mango" },
+ { "id": "grape", "value": "grape", "label": "Grape" }
+ ],
+ "validation": "required",
+ "validationMessages": {
+ "required": "The searchable single select is required"
+ },
+ "pii": false
+ },
+ {
+ "$formkit": "RplFormDropdown",
+ "key": "searchable_multi_select",
+ "id": "searchable_multi_select",
+ "name": "searchable_multi_select",
+ "label": "Searchable multi select",
+ "multiple": true,
+ "searchable": true,
+ "options": [
+ { "id": "cherry", "value": "cherry", "label": "Cherry" },
+ { "id": "aprium", "value": "aprium", "label": "Aprium" },
+ { "id": "pear", "value": "pear", "label": "Pear" },
+ { "id": "plum", "value": "plum", "label": "Plum" },
+ { "id": "apricot", "value": "apricot", "label": "Apricot" }
+ ],
+ "pii": false
+ },
{
"$formkit": "RplFormRadioGroup",
"id": "person_type",
diff --git a/examples/nuxt-app/test/fixtures/landingpage/home.json b/examples/nuxt-app/test/fixtures/landingpage/home.json
index 793f0e3d4c..2ec2bcd7de 100644
--- a/examples/nuxt-app/test/fixtures/landingpage/home.json
+++ b/examples/nuxt-app/test/fixtures/landingpage/home.json
@@ -981,6 +981,18 @@
"allowFullscreen": true,
"showTitle": true
}
+ },
+ {
+ "uuid": "0aa14648-604d-4aab-833a-bbce065433f4",
+ "component": "ExampleDDC",
+ "id": "3553540",
+ "props": {
+ "title": "Test data driven title",
+ "description": "