.github
.storybook
__mocks__
cypress
fixtures
integration
common
editorial_workflow_migration_spec_github_backend_rest.js
editorial_workflow_spec_bitbucket_backend.js
editorial_workflow_spec_git-gateway_github_backend.js
editorial_workflow_spec_git-gateway_gitlab_backend.js
editorial_workflow_spec_github_backend_graphql.js
editorial_workflow_spec_github_backend_graphql_open_authoring.js
editorial_workflow_spec_github_backend_rest.js
editorial_workflow_spec_github_backend_rest_open_authoring.js
editorial_workflow_spec_gitlab_backend.js
editorial_workflow_spec_proxy_git_backend.js
editorial_workflow_spec_test_backend.js
field_validations_spec.js
i18n_editorial_workflow_spec_test_backend.js
i18n_simple_workflow_spec_proxy_fs_backend.js
markdown_widget_backspace_spec.js
markdown_widget_code_block_spec.js
markdown_widget_enter_spec.js
markdown_widget_hotkeys_spec.js
markdown_widget_link_spec.js
markdown_widget_list_spec.js
markdown_widget_marks_spec.js
markdown_widget_quote_spec.js
media_library_spec_bitbucket_backend.js
media_library_spec_bitbucket_backend_large_media.js
media_library_spec_git-gateway_github_backend_large_media.js
media_library_spec_git-gateway_gitlab_backend_large_media.js
media_library_spec_github_backend_graphql.js
media_library_spec_github_backend_rest.js
media_library_spec_gitlab_backend.js
media_library_spec_proxy_git_backend.js
media_library_spec_test_backend.js
search_suggestion_spec.js
simple_workflow_spec_bitbucket_backend.js
simple_workflow_spec_git-gateway_github_backend.js
simple_workflow_spec_git-gateway_gitlab_backend.js
simple_workflow_spec_github_backend_graphql.js
simple_workflow_spec_github_backend_rest.js
simple_workflow_spec_gitlab_backend.js
simple_workflow_spec_proxy_fs_backend.js
simple_workflow_spec_proxy_git_backend.js
simple_workflow_spec_test_backend.js
view_filters_spec.js
view_groups_spec.js
plugins
snapshots
support
utils
Readme.md
run.mjs
dev-test
functions
img
packages
scripts
website
.all-contributorsrc
.editorconfig
.eslintrc.js
.gitattributes
.gitignore
.nvmrc
.prettierignore
.prettierrc
.stylelintrc
.vale.ini
CHANGELOG.md
CODE_OF_CONDUCT.md
CONTRIBUTING.md
LICENSE
README.md
babel.config.js
cms.png
commitlint.config.js
cypress.json
jest.config.js
lerna.json
netlify.toml
package.json
renovate.json
setupTestFramework.js
tsconfig.json
yarn.lock
110 lines
2.7 KiB
JavaScript
110 lines
2.7 KiB
JavaScript
import '../utils/dismiss-local-backup';
|
|
import {
|
|
login,
|
|
validateObjectFieldsAndExit,
|
|
validateNestedObjectFieldsAndExit,
|
|
validateListFieldsAndExit,
|
|
validateNestedListFieldsAndExit,
|
|
} from '../utils/steps';
|
|
import { setting1, setting2 } from '../utils/constants';
|
|
|
|
const nestedListConfig = {
|
|
collections: [
|
|
{},
|
|
{},
|
|
{
|
|
name: 'settings',
|
|
label: 'Settings',
|
|
editor: { preview: false },
|
|
files: [
|
|
{},
|
|
{},
|
|
{
|
|
name: 'hotel_locations',
|
|
label: 'Hotel Locations',
|
|
file: '_data/hotel_locations.yml',
|
|
fields: [
|
|
{
|
|
label: 'Country',
|
|
name: 'country',
|
|
widget: 'string',
|
|
},
|
|
{
|
|
label: 'Hotel Locations',
|
|
name: 'hotel_locations',
|
|
widget: 'list',
|
|
fields: [
|
|
{
|
|
label: 'Cities',
|
|
name: 'cities',
|
|
widget: 'list',
|
|
fields: [
|
|
{
|
|
label: 'City',
|
|
name: 'city',
|
|
widget: 'string',
|
|
},
|
|
{
|
|
label: 'Number of Hotels in City',
|
|
name: 'number_of_hotels_in_city',
|
|
widget: 'number',
|
|
},
|
|
{
|
|
label: 'City Locations',
|
|
name: 'city_locations',
|
|
widget: 'list',
|
|
fields: [
|
|
{
|
|
label: 'Hotel Name',
|
|
name: 'hotel_name',
|
|
widget: 'string',
|
|
},
|
|
],
|
|
},
|
|
],
|
|
},
|
|
],
|
|
},
|
|
],
|
|
},
|
|
],
|
|
},
|
|
],
|
|
};
|
|
|
|
describe('Test Backend Editorial Workflow', () => {
|
|
after(() => {
|
|
cy.task('teardownBackend', { backend: 'test' });
|
|
});
|
|
|
|
before(() => {
|
|
Cypress.config('defaultCommandTimeout', 4000);
|
|
});
|
|
|
|
beforeEach(() => {
|
|
cy.task('setupBackend', { backend: 'test' });
|
|
});
|
|
|
|
it('can validate object fields', () => {
|
|
login();
|
|
validateObjectFieldsAndExit(setting1);
|
|
});
|
|
|
|
it('can validate fields nested in an object field', () => {
|
|
login();
|
|
validateNestedObjectFieldsAndExit(setting1);
|
|
});
|
|
|
|
it('can validate list fields', () => {
|
|
login();
|
|
validateListFieldsAndExit(setting2);
|
|
});
|
|
|
|
it('can validate deeply nested list fields', () => {
|
|
cy.task('updateConfig', nestedListConfig);
|
|
|
|
login();
|
|
validateNestedListFieldsAndExit(setting2);
|
|
});
|
|
});
|