@kitconcept/volto-light-theme 3.1.2 → 3.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.changelog.draft +12 -0
- package/.release-it.json +5 -1
- package/CHANGELOG.md +25 -4
- package/README.md +45 -134
- package/build/messages/src/components/Anontools/Anontools.json +10 -0
- package/build/messages/src/components/Blocks/Button/schema.json +6 -0
- package/build/messages/src/components/Blocks/EventMetadata/View.json +30 -0
- package/build/messages/src/components/Blocks/Image/Edit.json +10 -0
- package/build/messages/src/components/Blocks/Image/ImageSidebar.json +18 -0
- package/build/messages/src/components/Blocks/Image/schema.json +10 -0
- package/build/messages/src/components/Blocks/Listing/ListingBody.json +26 -0
- package/build/messages/src/components/Blocks/Search/TopSideFacets.json +10 -0
- package/build/messages/src/components/Blocks/Search/components/SearchDetails.json +10 -0
- package/build/messages/src/components/Blocks/Search/components/SearchInput.json +6 -0
- package/build/messages/src/components/Blocks/Slider/DefaultBody.json +18 -0
- package/build/messages/src/components/Blocks/Slider/schema.json +14 -0
- package/build/messages/src/components/Blocks/schema.json +6 -0
- package/build/messages/src/components/Breadcrumbs/Breadcrumbs.json +10 -0
- package/build/messages/src/components/Footer/Footer.json +30 -0
- package/build/messages/src/components/Header/Header.json +6 -0
- package/build/messages/src/components/LanguageSelector/LanguageSelector.json +6 -0
- package/build/messages/src/components/Logo/Logo.json +10 -0
- package/build/messages/src/components/MobileNavigation/MobileNavigation.json +26 -0
- package/build/messages/src/components/Navigation/Navigation.json +10 -0
- package/build/messages/src/components/SearchWidget/IntranetSearchWidget.json +14 -0
- package/build/messages/src/components/SearchWidget/SearchWidget.json +10 -0
- package/build/messages/src/components/Theme/EventView.json +6 -0
- package/build/messages/src/components/Widgets/AlignWidget.json +22 -0
- package/build/messages/src/index.json +10 -0
- package/locales/de/LC_MESSAGES/volto.po +7 -7
- package/locales/en/LC_MESSAGES/volto.po +7 -7
- package/locales/es/LC_MESSAGES/volto.po +10 -9
- package/locales/eu/LC_MESSAGES/volto.po +10 -9
- package/locales/pt_BR/volto.po +7 -7
- package/locales/volto.pot +8 -8
- package/package.json +8 -26
- package/src/components/Blocks/Image/Edit.jsx +14 -14
- package/src/components/Blocks/Image/ImageSidebar.jsx +3 -3
- package/src/components/Blocks/Image/View.jsx +17 -17
- package/src/components/Footer/Footer.jsx +2 -2
- package/src/components/Header/Header.jsx +12 -12
- package/src/index.js +2 -0
- package/src/theme/_content.scss +0 -1
- package/src/theme/_header.scss +1 -1
- package/src/theme/_variables.scss +3 -3
- package/.dockerignore +0 -1
- package/.editorconfig +0 -34
- package/.eslintignore +0 -6
- package/.eslintrc +0 -53
- package/.github/workflows/acceptance.yml +0 -98
- package/.github/workflows/changelog.yml +0 -43
- package/.github/workflows/code.yml +0 -16
- package/.github/workflows/deploy.yml +0 -105
- package/.github/workflows/unit.yml +0 -16
- package/.prettierignore +0 -3
- package/.prettierrc +0 -12
- package/.stylelintrc +0 -32
- package/.yarn/releases/yarn-3.2.3.cjs +0 -783
- package/.yarnrc.yml +0 -3
- package/Makefile +0 -174
- package/UPGRADE-GUIDE.md +0 -38
- package/acceptance/.gitkeep +0 -0
- package/acceptance/ci-a11y.yml +0 -31
- package/acceptance/ci.yml +0 -29
- package/acceptance/cypress/.gitkeep +0 -0
- package/acceptance/cypress/fixtures/broccoli.jpg +0 -0
- package/acceptance/cypress/fixtures/example.json +0 -5
- package/acceptance/cypress/fixtures/file.pdf +0 -0
- package/acceptance/cypress/fixtures/halfdome2022.jpg +0 -0
- package/acceptance/cypress/fixtures/image.png +0 -0
- package/acceptance/cypress/plugins/index.js +0 -17
- package/acceptance/cypress/support/commands.js +0 -23
- package/acceptance/cypress/support/e2e.js +0 -23
- package/acceptance/cypress/support/reset-fixture.js +0 -45
- package/acceptance/cypress/support/slate.js +0 -14
- package/acceptance/cypress/tests/.gitkeep +0 -0
- package/acceptance/cypress/tests/a11y/accordionBlock.cy.js +0 -30
- package/acceptance/cypress/tests/a11y/basic.cy.js +0 -26
- package/acceptance/cypress/tests/a11y/buttonBlock.cy.js +0 -18
- package/acceptance/cypress/tests/a11y/eventContenttype.cy.js +0 -18
- package/acceptance/cypress/tests/a11y/fileContenttype.cy.js +0 -18
- package/acceptance/cypress/tests/a11y/gridBlock.cy.js +0 -18
- package/acceptance/cypress/tests/a11y/gridImageBlock.cy.js +0 -18
- package/acceptance/cypress/tests/a11y/gridListingBlock.cy.js +0 -18
- package/acceptance/cypress/tests/a11y/gridTeaserBlock.cy.js +0 -18
- package/acceptance/cypress/tests/a11y/gridTextBlock.cy.js +0 -33
- package/acceptance/cypress/tests/a11y/headingBlock.cy.js +0 -18
- package/acceptance/cypress/tests/a11y/highlightBlock.cy.js +0 -18
- package/acceptance/cypress/tests/a11y/imageBlock.cy.js +0 -18
- package/acceptance/cypress/tests/a11y/imageContenttype.cy.js +0 -18
- package/acceptance/cypress/tests/a11y/introductionBlock.cy.js +0 -18
- package/acceptance/cypress/tests/a11y/linkContenttype.cy.js +0 -18
- package/acceptance/cypress/tests/a11y/listingBlock.cy.js +0 -31
- package/acceptance/cypress/tests/a11y/mapsBlock.cy.js +0 -27
- package/acceptance/cypress/tests/a11y/newsItemContenttype.cy.js +0 -27
- package/acceptance/cypress/tests/a11y/pageContent.cy.js +0 -27
- package/acceptance/cypress/tests/a11y/searchBlock.cy.js +0 -18
- package/acceptance/cypress/tests/a11y/separatorBlock.cy.js +0 -28
- package/acceptance/cypress/tests/a11y/tableBlock.cy.js +0 -26
- package/acceptance/cypress/tests/a11y/teaserBlock.cy.js +0 -18
- package/acceptance/cypress/tests/a11y/textBlock.cy.js +0 -18
- package/acceptance/cypress/tests/a11y/tocBlock.cy.js +0 -18
- package/acceptance/cypress/tests/a11y/videoBlock.cy.js +0 -27
- package/acceptance/cypress/tests/main/basic.cy.js +0 -71
- package/acceptance/cypress/tests/main/blocks-map.cy.js +0 -56
- package/acceptance/cypress/tests/main/blocks-table.cy.js +0 -127
- package/acceptance/cypress/tests/main/listing-grid.cy.js +0 -77
- package/acceptance/cypress/tests/main/nav.cy.js +0 -54
- package/acceptance/cypress/tests/main/site-action.cy.js +0 -16
- package/acceptance/cypress.config.js +0 -17
- package/acceptance/docker-compose-a11y.yml +0 -55
- package/acceptance/docker-compose.yml +0 -53
- package/acceptance/package.json +0 -5
- package/acceptance/yarn.lock +0 -2638
- package/devops/stacks/light-theme.kitconcept.io.yml +0 -66
- package/dockerfiles/Dockerfile +0 -32
- package/dockerfiles/Dockerfile.acceptance +0 -19
- package/dockerfiles/Dockerfile.dev +0 -24
- package/dockerfiles/docker-compose.yml +0 -56
- package/dockerfiles/helper.py +0 -132
- package/volto-light-theme.png +0 -0
- package/volto.config.js +0 -7
package/.yarnrc.yml
DELETED
package/Makefile
DELETED
|
@@ -1,174 +0,0 @@
|
|
|
1
|
-
# Yeoman Volto App development
|
|
2
|
-
|
|
3
|
-
### Defensive settings for make:
|
|
4
|
-
# https://tech.davis-hansson.com/p/make/
|
|
5
|
-
SHELL:=bash
|
|
6
|
-
.ONESHELL:
|
|
7
|
-
.SHELLFLAGS:=-eu -o pipefail -c
|
|
8
|
-
.SILENT:
|
|
9
|
-
.DELETE_ON_ERROR:
|
|
10
|
-
MAKEFLAGS+=--warn-undefined-variables
|
|
11
|
-
MAKEFLAGS+=--no-builtin-rules
|
|
12
|
-
|
|
13
|
-
CURRENT_DIR:=$(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
|
|
14
|
-
|
|
15
|
-
# Recipe snippets for reuse
|
|
16
|
-
|
|
17
|
-
# We like colors
|
|
18
|
-
# From: https://coderwall.com/p/izxssa/colored-makefile-for-golang-projects
|
|
19
|
-
RED=`tput setaf 1`
|
|
20
|
-
GREEN=`tput setaf 2`
|
|
21
|
-
RESET=`tput sgr0`
|
|
22
|
-
YELLOW=`tput setaf 3`
|
|
23
|
-
|
|
24
|
-
PLONE_VERSION=6
|
|
25
|
-
VOLTO_VERSION=17.15.5
|
|
26
|
-
|
|
27
|
-
ADDON_NAME='@kitconcept/volto-light-theme'
|
|
28
|
-
ADDON_PATH='volto-light-theme'
|
|
29
|
-
COMPOSE_FILE=dockerfiles/docker-compose.yml
|
|
30
|
-
ACCEPTANCE_COMPOSE=acceptance/docker-compose.yml
|
|
31
|
-
ACCEPTANCE_COMPOSE_A11Y=acceptance/docker-compose-a11y.yml
|
|
32
|
-
CMD=CURRENT_DIR=${CURRENT_DIR} ADDON_NAME=${ADDON_NAME} ADDON_PATH=${ADDON_PATH} VOLTO_VERSION=${VOLTO_VERSION} PLONE_VERSION=${PLONE_VERSION} docker compose
|
|
33
|
-
DOCKER_COMPOSE=${CMD} -p ${ADDON_PATH} -f ${COMPOSE_FILE}
|
|
34
|
-
DEV_COMPOSE=COMPOSE_PROFILES=dev ${DOCKER_COMPOSE}
|
|
35
|
-
LIVE_COMPOSE=COMPOSE_PROFILES=dev ${DOCKER_COMPOSE}
|
|
36
|
-
ACCEPTANCE=${CMD} -p ${ADDON_PATH}-acceptance -f ${ACCEPTANCE_COMPOSE}
|
|
37
|
-
ACCEPTANCE_A11Y=${CMD} -p ${ADDON_PATH}-acceptance -f ${ACCEPTANCE_COMPOSE_A11Y}
|
|
38
|
-
|
|
39
|
-
.PHONY: build-backend
|
|
40
|
-
build-backend: ## Build
|
|
41
|
-
@echo "$(GREEN)==> Build Backend Container $(RESET)"
|
|
42
|
-
${DEV_COMPOSE} build backend
|
|
43
|
-
|
|
44
|
-
.PHONY: start-backend
|
|
45
|
-
start-backend: ## Starts Docker backend
|
|
46
|
-
@echo "$(GREEN)==> Start Docker-based Plone Backend $(RESET)"
|
|
47
|
-
${DEV_COMPOSE} up backend -d
|
|
48
|
-
|
|
49
|
-
.PHONY: stop-backend
|
|
50
|
-
stop-backend: ## Stop Docker backend
|
|
51
|
-
@echo "$(GREEN)==> Stop Docker-based Plone Backend $(RESET)"
|
|
52
|
-
${DEV_COMPOSE} stop backend
|
|
53
|
-
|
|
54
|
-
.PHONY: build-live
|
|
55
|
-
build-live: ## Build Addon live
|
|
56
|
-
@echo "$(GREEN)==> Build Addon development container $(RESET)"
|
|
57
|
-
${LIVE_COMPOSE} build addon-live
|
|
58
|
-
|
|
59
|
-
.PHONY: build-addon
|
|
60
|
-
build-addon: ## Build Addon dev
|
|
61
|
-
@echo "$(GREEN)==> Build Addon development container $(RESET)"
|
|
62
|
-
${DEV_COMPOSE} build addon-dev
|
|
63
|
-
|
|
64
|
-
.PHONY: start-dev
|
|
65
|
-
start-dev: ## Starts Dev container
|
|
66
|
-
@echo "$(GREEN)==> Start Addon Development container $(RESET)"
|
|
67
|
-
${DEV_COMPOSE} up addon-dev backend
|
|
68
|
-
|
|
69
|
-
.PHONY: start-live
|
|
70
|
-
start-live: ## Starts Dev container
|
|
71
|
-
@echo "$(GREEN)==> Start Addon Development container $(RESET)"
|
|
72
|
-
${DEV_COMPOSE} up addon-live backend
|
|
73
|
-
|
|
74
|
-
.PHONY: dev
|
|
75
|
-
dev: ## Develop the addon
|
|
76
|
-
@echo "$(GREEN)==> Start Development Environment $(RESET)"
|
|
77
|
-
make build-backend
|
|
78
|
-
make start-backend
|
|
79
|
-
make build-addon
|
|
80
|
-
make start-dev
|
|
81
|
-
|
|
82
|
-
.PHONY: help
|
|
83
|
-
help: ## Show this help.
|
|
84
|
-
@echo -e "$$(grep -hE '^\S+:.*##' $(MAKEFILE_LIST) | sed -e 's/:.*##\s*/:/' -e 's/^\(.\+\):\(.*\)/\\x1b[36m\1\\x1b[m:\2/' | column -c2 -t -s :)"
|
|
85
|
-
|
|
86
|
-
## Setup the local environment
|
|
87
|
-
.PHONY: install
|
|
88
|
-
install: ## Install the local environment, Cypress, build acceptance containers
|
|
89
|
-
yarn
|
|
90
|
-
make install-acceptance
|
|
91
|
-
|
|
92
|
-
# Dev Helpers
|
|
93
|
-
.PHONY: i18n
|
|
94
|
-
i18n: ## Sync i18n
|
|
95
|
-
@echo "$(YELLOW)==> Do not forget to setup the local environment (make install) $(RESET)"
|
|
96
|
-
yarn i18n
|
|
97
|
-
|
|
98
|
-
.PHONY: format
|
|
99
|
-
format: ## Format codebase
|
|
100
|
-
${DEV_COMPOSE} run --rm addon-dev lint:fix
|
|
101
|
-
${DEV_COMPOSE} run --rm addon-dev prettier:fix
|
|
102
|
-
${DEV_COMPOSE} run --rm addon-dev stylelint:fix
|
|
103
|
-
|
|
104
|
-
.PHONY: lint
|
|
105
|
-
lint: ## Lint Codebase
|
|
106
|
-
${DEV_COMPOSE} run --rm addon-dev lint
|
|
107
|
-
${DEV_COMPOSE} run --rm addon-dev prettier
|
|
108
|
-
${DEV_COMPOSE} run --rm addon-dev stylelint --allow-empty-input
|
|
109
|
-
|
|
110
|
-
.PHONY: test
|
|
111
|
-
test: ## Run unit tests
|
|
112
|
-
${DEV_COMPOSE} run --rm addon-dev test --watchAll
|
|
113
|
-
|
|
114
|
-
.PHONY: test-ci
|
|
115
|
-
test-ci: ## Run unit tests in CI
|
|
116
|
-
${DEV_COMPOSE} run -e CI=1 addon-dev test
|
|
117
|
-
|
|
118
|
-
## Acceptance
|
|
119
|
-
.PHONY: install-acceptance
|
|
120
|
-
install-acceptance: ## Install Cypress, build acceptance containers
|
|
121
|
-
(cd acceptance && yarn)
|
|
122
|
-
${ACCEPTANCE} --profile dev --profile prod build
|
|
123
|
-
|
|
124
|
-
.PHONY: start-test-acceptance-server
|
|
125
|
-
start-test-acceptance-server: ## Start acceptance server (for use it in while developing)
|
|
126
|
-
${ACCEPTANCE} --profile dev up
|
|
127
|
-
|
|
128
|
-
.PHONY: start-test-acceptance-server-prod
|
|
129
|
-
start-test-acceptance-server-prod: ## Start acceptance server in prod (used by CI)
|
|
130
|
-
${ACCEPTANCE} --profile prod up -d
|
|
131
|
-
|
|
132
|
-
.PHONY: test-acceptance
|
|
133
|
-
test-acceptance: ## Start Cypress (for use it while developing)
|
|
134
|
-
(cd acceptance && ./node_modules/.bin/cypress open --config specPattern='cypress/tests/main/**/*.{js,jsx,ts,tsx}')
|
|
135
|
-
|
|
136
|
-
.PHONY: test-acceptance-headless
|
|
137
|
-
test-acceptance-headless: ## Run cypress tests in CI
|
|
138
|
-
(cd acceptance && ./node_modules/.bin/cypress run)
|
|
139
|
-
|
|
140
|
-
.PHONY: stop-test-acceptance-server
|
|
141
|
-
stop-test-acceptance-server: ## Stop acceptance server (for use it while finished developing)
|
|
142
|
-
${ACCEPTANCE} --profile dev down
|
|
143
|
-
|
|
144
|
-
.PHONY: status-test-acceptance-server
|
|
145
|
-
status-test-acceptance-server: ## Status of Acceptance Server (for use it while developing)
|
|
146
|
-
${ACCEPTANCE} ps
|
|
147
|
-
|
|
148
|
-
.PHONY: start-test-acceptance-server-a11y
|
|
149
|
-
start-test-acceptance-server-a11y: ## Start a11y acceptance server (for use it in while developing)
|
|
150
|
-
${ACCEPTANCE_A11Y} --profile dev up
|
|
151
|
-
|
|
152
|
-
.PHONY: stop-test-acceptance-server-a11y
|
|
153
|
-
stop-test-acceptance-server-a11y: ## Stop a11y acceptance server (for use it while finished developing)
|
|
154
|
-
${ACCEPTANCE_A11Y} --profile dev down
|
|
155
|
-
|
|
156
|
-
.PHONY: test-acceptance-a11y
|
|
157
|
-
test-acceptance-a11y: ## Start Cypress (for use it while developing)
|
|
158
|
-
(cd acceptance && CYPRESS_a11y=1 ./node_modules/.bin/cypress open --config specPattern='cypress/tests/a11y/**/*.{js,jsx,ts,tsx}')
|
|
159
|
-
|
|
160
|
-
.PHONY: debug-frontend
|
|
161
|
-
debug-frontend: ## Run bash in the Frontend container (for debug infrastructure purposes)
|
|
162
|
-
${DEV_COMPOSE} run --entrypoint bash addon-dev
|
|
163
|
-
|
|
164
|
-
.PHONY: pull-backend-image
|
|
165
|
-
pull-backend-image: ## Pulls and updates the backend image (for use it while developing)
|
|
166
|
-
docker pull ghcr.io/kitconcept/voltolighttheme:latest
|
|
167
|
-
|
|
168
|
-
.PHONY: release
|
|
169
|
-
release: ## Release a version of the add-on
|
|
170
|
-
yarn release
|
|
171
|
-
|
|
172
|
-
.PHONY: release-rc
|
|
173
|
-
release-rc: ## Release a RC version of the add-on
|
|
174
|
-
npx release-it --preRelease=rc
|
package/UPGRADE-GUIDE.md
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
# Upgrade Guide
|
|
2
|
-
|
|
3
|
-
## volto-light-theme 3.0.0
|
|
4
|
-
|
|
5
|
-
### Blocks background colors go full width
|
|
6
|
-
|
|
7
|
-
The background colors previously used to snap to 1440px.
|
|
8
|
-
From 3.0.0-alpha.0 this changed to be unconstrained by default, and expand to the end of the horizontal viewport.
|
|
9
|
-
|
|
10
|
-
### Upgraded support for volto-slider-block 6.0.0
|
|
11
|
-
|
|
12
|
-
VLT upgraded the dependency on `@kitconcept/volto-slider-block` to use `6.0.0`.
|
|
13
|
-
|
|
14
|
-
This is a drop-in replacement, so no action is required for the existing slider blocks you may have already in your sites.
|
|
15
|
-
However, the CSS classes of the structural slider block elements changed in this version.
|
|
16
|
-
The inner (visible objects) CSS classes remain unchanged.
|
|
17
|
-
If you have customized them in your project, you may have to update them, although the structural class names are rarely customized aside from vertical spacing properties.
|
|
18
|
-
They are mapped 1:1 with the previous ones, following this table correspondence:
|
|
19
|
-
|
|
20
|
-
| Old className | New className |
|
|
21
|
-
| --------------- | ---------------- |
|
|
22
|
-
| slick-slider | slider-wrapper |
|
|
23
|
-
| slick-list | slider-viewport |
|
|
24
|
-
| slick-track | slider-container |
|
|
25
|
-
| slick-slide | slider-slide |
|
|
26
|
-
| slick-arrow | slider-button |
|
|
27
|
-
| slick-prev | slider-button-prev |
|
|
28
|
-
| slick-next | slider-slide-next |
|
|
29
|
-
| slick-next | slider-slide-next |
|
|
30
|
-
| slick-dots | slider-dots |
|
|
31
|
-
| slick-dot | slider-dot |
|
|
32
|
-
|
|
33
|
-
For more information, please check the https://github.com/kitconcept/volto-slider-block/blob/main/README.md [#288](https://github.com/kitconcept/volto-light-theme/pull/288)
|
|
34
|
-
|
|
35
|
-
### Language switcher shows the two letters abbreviation of the languages
|
|
36
|
-
|
|
37
|
-
Volto default is to show the full name of the language in the language switcher.
|
|
38
|
-
VLT now shows only the two letters abbreviation of the language.
|
package/acceptance/.gitkeep
DELETED
|
File without changes
|
package/acceptance/ci-a11y.yml
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
version: "3"
|
|
2
|
-
|
|
3
|
-
services:
|
|
4
|
-
|
|
5
|
-
addon-acceptance:
|
|
6
|
-
build:
|
|
7
|
-
context: ../
|
|
8
|
-
dockerfile: ./dockerfiles/Dockerfile
|
|
9
|
-
args:
|
|
10
|
-
ADDON_NAME: "${ADDON_NAME}"
|
|
11
|
-
ADDON_PATH: "${ADDON_PATH}"
|
|
12
|
-
VOLTO_VERSION: ${VOLTO_VERSION:-17}
|
|
13
|
-
environment:
|
|
14
|
-
RAZZLE_INTERNAL_API_PATH: http://backend-acceptance-a11y:8080/Plone
|
|
15
|
-
RAZZLE_API_PATH: http://localhost:8080/Plone
|
|
16
|
-
ports:
|
|
17
|
-
- 3000:3000
|
|
18
|
-
depends_on:
|
|
19
|
-
- backend-acceptance-a11y
|
|
20
|
-
profiles:
|
|
21
|
-
- prod
|
|
22
|
-
|
|
23
|
-
backend-acceptance-a11y:
|
|
24
|
-
image: ghcr.io/kitconcept/voltolighttheme:latest
|
|
25
|
-
environment:
|
|
26
|
-
CORS_: true
|
|
27
|
-
ports:
|
|
28
|
-
- 8080:8080
|
|
29
|
-
profiles:
|
|
30
|
-
- dev
|
|
31
|
-
- prod
|
package/acceptance/ci.yml
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
version: "3"
|
|
2
|
-
|
|
3
|
-
services:
|
|
4
|
-
|
|
5
|
-
addon-acceptance:
|
|
6
|
-
build:
|
|
7
|
-
context: ../
|
|
8
|
-
dockerfile: ./dockerfiles/Dockerfile
|
|
9
|
-
args:
|
|
10
|
-
ADDON_NAME: "${ADDON_NAME}"
|
|
11
|
-
ADDON_PATH: "${ADDON_PATH}"
|
|
12
|
-
VOLTO_VERSION: ${VOLTO_VERSION:-17}
|
|
13
|
-
environment:
|
|
14
|
-
RAZZLE_INTERNAL_API_PATH: http://backend-acceptance:55001/plone
|
|
15
|
-
RAZZLE_API_PATH: http://localhost:55001/plone
|
|
16
|
-
ports:
|
|
17
|
-
- 3000:3000
|
|
18
|
-
depends_on:
|
|
19
|
-
- backend-acceptance
|
|
20
|
-
profiles:
|
|
21
|
-
- prod
|
|
22
|
-
|
|
23
|
-
backend-acceptance:
|
|
24
|
-
image: plone/server-acceptance:${PLONE_VERSION:-6}
|
|
25
|
-
ports:
|
|
26
|
-
- 55001:55001
|
|
27
|
-
profiles:
|
|
28
|
-
- dev
|
|
29
|
-
- prod
|
|
File without changes
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
// ***********************************************************
|
|
2
|
-
// This example plugins/index.js can be used to load plugins
|
|
3
|
-
//
|
|
4
|
-
// You can change the location of this file or turn off loading
|
|
5
|
-
// the plugins file with the 'pluginsFile' configuration option.
|
|
6
|
-
//
|
|
7
|
-
// You can read more here:
|
|
8
|
-
// https://on.cypress.io/plugins-guide
|
|
9
|
-
// ***********************************************************
|
|
10
|
-
|
|
11
|
-
// This function is called when a project is opened or re-opened (e.g. due to
|
|
12
|
-
// the project's config changing)
|
|
13
|
-
|
|
14
|
-
module.exports = (on, config) => {
|
|
15
|
-
// `on` is used to hook into various events Cypress emits
|
|
16
|
-
// `config` is the resolved Cypress config
|
|
17
|
-
};
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import '@plone/volto-testing/cypress/support/commands';
|
|
2
|
-
|
|
3
|
-
// Print cypress-axe violations to the terminal
|
|
4
|
-
function printAccessibilityViolations(violations) {
|
|
5
|
-
cy.task(
|
|
6
|
-
'table',
|
|
7
|
-
violations.map(({ id, impact, description, nodes }) => ({
|
|
8
|
-
impact,
|
|
9
|
-
description: `${description} (${id})`,
|
|
10
|
-
nodes: nodes.length,
|
|
11
|
-
})),
|
|
12
|
-
);
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
Cypress.Commands.add(
|
|
16
|
-
'checkAccessibility',
|
|
17
|
-
(subject, { skipFailures = false } = {}) => {
|
|
18
|
-
cy.checkA11y(subject, null, printAccessibilityViolations, skipFailures);
|
|
19
|
-
},
|
|
20
|
-
{
|
|
21
|
-
prevSubject: 'optional',
|
|
22
|
-
},
|
|
23
|
-
);
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import 'cypress-axe';
|
|
2
|
-
import 'cypress-file-upload';
|
|
3
|
-
import './commands';
|
|
4
|
-
import 'cypress-axe';
|
|
5
|
-
import { setup, teardown } from './reset-fixture';
|
|
6
|
-
|
|
7
|
-
beforeEach(function () {
|
|
8
|
-
cy.setCookie('confirm_cookies', '1');
|
|
9
|
-
cy.setCookie('confirm_tracking', '1');
|
|
10
|
-
cy.setCookie('confirm_facebook', '1');
|
|
11
|
-
cy.setCookie('confirm_youtube', '1');
|
|
12
|
-
cy.log('Setting up API fixture');
|
|
13
|
-
if (!Cypress.env('a11y')) {
|
|
14
|
-
setup();
|
|
15
|
-
}
|
|
16
|
-
});
|
|
17
|
-
|
|
18
|
-
afterEach(function () {
|
|
19
|
-
cy.log('Tearing down API fixture');
|
|
20
|
-
if (!Cypress.env('a11y')) {
|
|
21
|
-
teardown();
|
|
22
|
-
}
|
|
23
|
-
});
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
function setup() {
|
|
2
|
-
const api_url = Cypress.env('API_PATH') || 'http://localhost:55001/plone';
|
|
3
|
-
cy.request({
|
|
4
|
-
method: 'POST',
|
|
5
|
-
url: `${api_url}/RobotRemote`,
|
|
6
|
-
headers: { Accept: 'text/xml', 'content-type': 'text/xml' },
|
|
7
|
-
body:
|
|
8
|
-
'<?xml version="1.0"?><methodCall><methodName>run_keyword</methodName><params><param><value><string>remote_zodb_setup</string></value></param><param><value><array><data><value><string>plone.app.robotframework.testing.PLONE_ROBOT_TESTING</string></value></data></array></value></param></params></methodCall>',
|
|
9
|
-
}).then(() => cy.log('Setting up API fixture'));
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
function teardown() {
|
|
13
|
-
const api_url = Cypress.env('API_PATH') || 'http://localhost:55001/plone';
|
|
14
|
-
cy.request({
|
|
15
|
-
method: 'POST',
|
|
16
|
-
url: `${api_url}/RobotRemote`,
|
|
17
|
-
headers: { Accept: 'text/xml', 'content-type': 'text/xml' },
|
|
18
|
-
body:
|
|
19
|
-
'<?xml version="1.0"?><methodCall><methodName>run_keyword</methodName><params><param><value><string>remote_zodb_teardown</string></value></param><param><value><array><data><value><string>plone.app.robotframework.testing.PLONE_ROBOT_TESTING</string></value></data></array></value></param></params></methodCall>',
|
|
20
|
-
}).then(() => cy.log('Tearing down API fixture'));
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
function main() {
|
|
24
|
-
const command = process.argv[2];
|
|
25
|
-
switch (command) {
|
|
26
|
-
case 'setup':
|
|
27
|
-
setup();
|
|
28
|
-
break;
|
|
29
|
-
case 'teardown':
|
|
30
|
-
teardown();
|
|
31
|
-
break;
|
|
32
|
-
default:
|
|
33
|
-
setup();
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
// This is the equivalent of `if __name__ == '__main__'` in Python :)
|
|
38
|
-
if (require.main === module) {
|
|
39
|
-
main();
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
module.exports = {
|
|
43
|
-
setup,
|
|
44
|
-
teardown,
|
|
45
|
-
};
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
export const createSlateBlock = () => {
|
|
2
|
-
cy.get('.ui.basic.icon.button.block-add-button').first().click();
|
|
3
|
-
cy.get('.blocks-chooser .title').contains('Text').click();
|
|
4
|
-
cy.get('.ui.basic.icon.button.slate').contains('Text').click();
|
|
5
|
-
return getSelectedSlateEditor();
|
|
6
|
-
};
|
|
7
|
-
|
|
8
|
-
export const getSelectedSlateEditor = () => {
|
|
9
|
-
return cy.get('.slate-editor.selected [contenteditable=true]').click();
|
|
10
|
-
};
|
|
11
|
-
|
|
12
|
-
export const getSlateEditorAndType = (selector, type) => {
|
|
13
|
-
return cy.get(selector).focus().click().wait(1000).type(type).wait(1000);
|
|
14
|
-
};
|
|
File without changes
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
describe('a11y tests', () => {
|
|
2
|
-
beforeEach(() => {
|
|
3
|
-
// Cypress starts out with a blank slate for each test
|
|
4
|
-
// so we must tell it to visit our website with the `cy.visit()` command.
|
|
5
|
-
// Since we want to visit the same URL at the start of all our tests,
|
|
6
|
-
// we include it in our beforeEach function so that it runs before each test
|
|
7
|
-
cy.visit('/');
|
|
8
|
-
});
|
|
9
|
-
|
|
10
|
-
// Accordion Block
|
|
11
|
-
it('Accordion Block (/block/block-accordion)', () => {
|
|
12
|
-
cy.navigate('/block/block-accordion');
|
|
13
|
-
cy.wait(2000);
|
|
14
|
-
cy.injectAxe();
|
|
15
|
-
cy.configureAxe({
|
|
16
|
-
rules: [
|
|
17
|
-
// the example page intentionally omits the h1
|
|
18
|
-
{
|
|
19
|
-
id: 'page-has-heading-one',
|
|
20
|
-
enabled: false,
|
|
21
|
-
},
|
|
22
|
-
{
|
|
23
|
-
id: 'duplicate-id',
|
|
24
|
-
enabled: false,
|
|
25
|
-
},
|
|
26
|
-
],
|
|
27
|
-
});
|
|
28
|
-
cy.checkAccessibility();
|
|
29
|
-
});
|
|
30
|
-
});
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
describe('a11y tests', () => {
|
|
3
|
-
beforeEach(() => {
|
|
4
|
-
// Cypress starts out with a blank slate for each test
|
|
5
|
-
// so we must tell it to visit our website with the `cy.visit()` command.
|
|
6
|
-
// Since we want to visit the same URL at the start of all our tests,
|
|
7
|
-
// we include it in our beforeEach function so that it runs before each test
|
|
8
|
-
cy.visit('/');
|
|
9
|
-
});
|
|
10
|
-
|
|
11
|
-
it('Home page (/)', () => {
|
|
12
|
-
cy.navigate('/');
|
|
13
|
-
cy.wait(2000);
|
|
14
|
-
cy.injectAxe();
|
|
15
|
-
cy.configureAxe({
|
|
16
|
-
rules: [
|
|
17
|
-
// the example home page intentionally omits the h1
|
|
18
|
-
{
|
|
19
|
-
id: 'page-has-heading-one',
|
|
20
|
-
enabled: false,
|
|
21
|
-
},
|
|
22
|
-
],
|
|
23
|
-
});
|
|
24
|
-
cy.checkAccessibility();
|
|
25
|
-
});
|
|
26
|
-
});
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
describe('a11y tests', () => {
|
|
2
|
-
beforeEach(() => {
|
|
3
|
-
// Cypress starts out with a blank slate for each test
|
|
4
|
-
// so we must tell it to visit our website with the `cy.visit()` command.
|
|
5
|
-
// Since we want to visit the same URL at the start of all our tests,
|
|
6
|
-
// we include it in our beforeEach function so that it runs before each test
|
|
7
|
-
cy.visit('/');
|
|
8
|
-
});
|
|
9
|
-
|
|
10
|
-
//Button
|
|
11
|
-
it('Button-Block (/block/button-block)', () => {
|
|
12
|
-
cy.navigate('/block/button-block');
|
|
13
|
-
cy.wait(2000);
|
|
14
|
-
cy.injectAxe();
|
|
15
|
-
cy.configureAxe();
|
|
16
|
-
cy.checkAccessibility();
|
|
17
|
-
});
|
|
18
|
-
});
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
describe('a11y tests', () => {
|
|
2
|
-
beforeEach(() => {
|
|
3
|
-
// Cypress starts out with a blank slate for each test
|
|
4
|
-
// so we must tell it to visit our website with the `cy.visit()` command.
|
|
5
|
-
// Since we want to visit the same URL at the start of all our tests,
|
|
6
|
-
// we include it in our beforeEach function so that it runs before each test
|
|
7
|
-
cy.visit('/');
|
|
8
|
-
});
|
|
9
|
-
|
|
10
|
-
//Event
|
|
11
|
-
it('Event (/content-types/event)', () => {
|
|
12
|
-
cy.navigate('/content-types/event');
|
|
13
|
-
cy.wait(2000);
|
|
14
|
-
cy.injectAxe();
|
|
15
|
-
cy.configureAxe();
|
|
16
|
-
cy.checkAccessibility();
|
|
17
|
-
});
|
|
18
|
-
});
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
describe('a11y tests', () => {
|
|
2
|
-
beforeEach(() => {
|
|
3
|
-
// Cypress starts out with a blank slate for each test
|
|
4
|
-
// so we must tell it to visit our website with the `cy.visit()` command.
|
|
5
|
-
// Since we want to visit the same URL at the start of all our tests,
|
|
6
|
-
// we include it in our beforeEach function so that it runs before each test
|
|
7
|
-
cy.visit('/');
|
|
8
|
-
});
|
|
9
|
-
|
|
10
|
-
//File
|
|
11
|
-
it('File (/content-types/file)', () => {
|
|
12
|
-
cy.navigate('/content-types/file');
|
|
13
|
-
cy.wait(2000);
|
|
14
|
-
cy.injectAxe();
|
|
15
|
-
cy.configureAxe();
|
|
16
|
-
cy.checkAccessibility();
|
|
17
|
-
});
|
|
18
|
-
});
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
describe('a11y tests', () => {
|
|
2
|
-
beforeEach(() => {
|
|
3
|
-
// Cypress starts out with a blank slate for each test
|
|
4
|
-
// so we must tell it to visit our website with the `cy.visit()` command.
|
|
5
|
-
// Since we want to visit the same URL at the start of all our tests,
|
|
6
|
-
// we include it in our beforeEach function so that it runs before each test
|
|
7
|
-
cy.visit('/');
|
|
8
|
-
});
|
|
9
|
-
|
|
10
|
-
// grid block
|
|
11
|
-
it('Grid-Block (/block/grid-block)', () => {
|
|
12
|
-
cy.navigate('/block/grid-block');
|
|
13
|
-
cy.wait(2000);
|
|
14
|
-
cy.injectAxe();
|
|
15
|
-
cy.configureAxe();
|
|
16
|
-
cy.checkAccessibility();
|
|
17
|
-
});
|
|
18
|
-
});
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
describe('a11y tests', () => {
|
|
2
|
-
beforeEach(() => {
|
|
3
|
-
// Cypress starts out with a blank slate for each test
|
|
4
|
-
// so we must tell it to visit our website with the `cy.visit()` command.
|
|
5
|
-
// Since we want to visit the same URL at the start of all our tests,
|
|
6
|
-
// we include it in our beforeEach function so that it runs before each test
|
|
7
|
-
cy.visit('/');
|
|
8
|
-
});
|
|
9
|
-
|
|
10
|
-
// grid block Image
|
|
11
|
-
it('Grid-Block Image (/block/grid-block/image)', () => {
|
|
12
|
-
cy.navigate('/block/grid-block/image');
|
|
13
|
-
cy.wait(2000);
|
|
14
|
-
cy.injectAxe();
|
|
15
|
-
cy.configureAxe();
|
|
16
|
-
cy.checkAccessibility();
|
|
17
|
-
});
|
|
18
|
-
});
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
describe('a11y tests', () => {
|
|
2
|
-
beforeEach(() => {
|
|
3
|
-
// Cypress starts out with a blank slate for each test
|
|
4
|
-
// so we must tell it to visit our website with the `cy.visit()` command.
|
|
5
|
-
// Since we want to visit the same URL at the start of all our tests,
|
|
6
|
-
// we include it in our beforeEach function so that it runs before each test
|
|
7
|
-
cy.visit('/');
|
|
8
|
-
});
|
|
9
|
-
|
|
10
|
-
// grid block listing
|
|
11
|
-
it('Grid-Block Listing (/block/grid-block/listing)', () => {
|
|
12
|
-
cy.navigate('/block/grid-block/listing');
|
|
13
|
-
cy.wait(2000);
|
|
14
|
-
cy.injectAxe();
|
|
15
|
-
cy.configureAxe();
|
|
16
|
-
cy.checkAccessibility();
|
|
17
|
-
});
|
|
18
|
-
});
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
describe('a11y tests', () => {
|
|
2
|
-
beforeEach(() => {
|
|
3
|
-
// Cypress starts out with a blank slate for each test
|
|
4
|
-
// so we must tell it to visit our website with the `cy.visit()` command.
|
|
5
|
-
// Since we want to visit the same URL at the start of all our tests,
|
|
6
|
-
// we include it in our beforeEach function so that it runs before each test
|
|
7
|
-
cy.visit('/');
|
|
8
|
-
});
|
|
9
|
-
|
|
10
|
-
// grid Teaser block
|
|
11
|
-
it('Grid-Block Teaser (/block/grid-block/teaser)', () => {
|
|
12
|
-
cy.navigate('/block/grid-block/teaser');
|
|
13
|
-
cy.wait(2000);
|
|
14
|
-
cy.injectAxe();
|
|
15
|
-
cy.configureAxe();
|
|
16
|
-
cy.checkAccessibility();
|
|
17
|
-
});
|
|
18
|
-
});
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
describe('a11y tests', () => {
|
|
2
|
-
beforeEach(() => {
|
|
3
|
-
// Cypress starts out with a blank slate for each test
|
|
4
|
-
// so we must tell it to visit our website with the `cy.visit()` command.
|
|
5
|
-
// Since we want to visit the same URL at the start of all our tests,
|
|
6
|
-
// we include it in our beforeEach function so that it runs before each test
|
|
7
|
-
cy.visit('/');
|
|
8
|
-
});
|
|
9
|
-
|
|
10
|
-
// grid tex block
|
|
11
|
-
it('Grid-Block text (/block/grid-block/text)', () => {
|
|
12
|
-
cy.navigate('/block/grid-block/text');
|
|
13
|
-
cy.wait(2000);
|
|
14
|
-
cy.injectAxe();
|
|
15
|
-
cy.configureAxe({
|
|
16
|
-
rules: [
|
|
17
|
-
// there are copies of slate h2,
|
|
18
|
-
// which have with the same id
|
|
19
|
-
{
|
|
20
|
-
id: 'duplicate-id-active',
|
|
21
|
-
enabled: false,
|
|
22
|
-
},
|
|
23
|
-
// there are missing heading of grid-block
|
|
24
|
-
// because we are using multiple grid block
|
|
25
|
-
{
|
|
26
|
-
id: 'empty-heading',
|
|
27
|
-
enabled: false,
|
|
28
|
-
},
|
|
29
|
-
],
|
|
30
|
-
});
|
|
31
|
-
cy.checkAccessibility();
|
|
32
|
-
});
|
|
33
|
-
});
|