- Testing: Separate tests into unit/ui; split UI tests by specific domain;
setup browser-bug folder and ui issues folder - Testing: Create test utilities for selecting English and visiting and approving storage - Testing: Add test for tool selection
This commit is contained in:
30
cypress/integration/ui/accessibility.js
Normal file
30
cypress/integration/ui/accessibility.js
Normal file
@@ -0,0 +1,30 @@
|
||||
describe('UI - Accessibility', function () {
|
||||
beforeEach(() => {
|
||||
cy.visit('/instrumented/svg-editor-es.html');
|
||||
cy.injectAxe();
|
||||
});
|
||||
|
||||
// https://www.npmjs.com/package/cypress-axe
|
||||
it('Has no detectable a11y violations on load', () => {
|
||||
// Configure aXe and test the page at initial load
|
||||
cy.configureAxe({
|
||||
// Todo: Reenable when have time to fix
|
||||
// See https://www.deque.com/axe/axe-for-web/documentation/api-documentation/#user-content-parameters-1
|
||||
rules: [{
|
||||
id: 'meta-viewport',
|
||||
enabled: false
|
||||
}]
|
||||
/*
|
||||
branding: {
|
||||
brand: String,
|
||||
application: String
|
||||
},
|
||||
reporter: 'option',
|
||||
checks: [Object],
|
||||
rules: [Object],
|
||||
locale: Object
|
||||
*/
|
||||
});
|
||||
cy.checkA11y();
|
||||
});
|
||||
});
|
||||
34
cypress/integration/ui/control-points.js
Normal file
34
cypress/integration/ui/control-points.js
Normal file
@@ -0,0 +1,34 @@
|
||||
import {
|
||||
visitAndApproveStorage
|
||||
} from '../../support/ui-test-helper.js';
|
||||
|
||||
describe('UI - Control Points', function () {
|
||||
beforeEach(() => {
|
||||
visitAndApproveStorage();
|
||||
});
|
||||
|
||||
it('Editor - No parameters: Drag control point of arc path', () => {
|
||||
const randomOffset = () => 2 + Math.round(10 + Math.random() * 40);
|
||||
cy.get('#tool_source').click();
|
||||
|
||||
cy.get('#svg_source_textarea')
|
||||
.type('{selectall}')
|
||||
.type(`<svg width="640" height="480" xmlns="http://www.w3.org/2000/svg">
|
||||
<g class="layer">
|
||||
<title>Layer 1</title>
|
||||
<path d="m187,194a114,62 0 1 0 219,2" fill="#FF0000" stroke="#000000" stroke-width="5"/>
|
||||
</g>
|
||||
</svg>`, {parseSpecialCharSequences: false});
|
||||
cy.get('#tool_source_save').click();
|
||||
cy.get('#svg_1').click().click();
|
||||
|
||||
cy.get('#pathpointgrip_0').trigger('mousedown', {which: 1})
|
||||
.trigger('mousemove', randomOffset(), randomOffset(), {force: true})
|
||||
.trigger('mouseup', {force: true});
|
||||
cy.get('#pathpointgrip_1').trigger('mousedown', {which: 1})
|
||||
.trigger('mousemove', randomOffset(), randomOffset(), {force: true})
|
||||
.trigger('mouseup', {force: true});
|
||||
|
||||
cy.get('#svg_1[d]').should('not.contain', 'NaN');
|
||||
});
|
||||
});
|
||||
20
cypress/integration/ui/export.js
Normal file
20
cypress/integration/ui/export.js
Normal file
@@ -0,0 +1,20 @@
|
||||
import {
|
||||
visitAndApproveStorage, openMainMenu
|
||||
} from '../../support/ui-test-helper.js';
|
||||
|
||||
describe('UI - Export tests', function () {
|
||||
beforeEach(() => {
|
||||
visitAndApproveStorage();
|
||||
});
|
||||
|
||||
it('Editor - No parameters: Has export button', () => {
|
||||
openMainMenu();
|
||||
cy.get('#tool_export');
|
||||
});
|
||||
|
||||
it('Editor - No parameters: Export button clicking; dialog opens', () => {
|
||||
openMainMenu();
|
||||
cy.get('#tool_export').click();
|
||||
cy.get('#dialog_content select');
|
||||
});
|
||||
});
|
||||
19
cypress/integration/ui/issues/issue-364.js
Normal file
19
cypress/integration/ui/issues/issue-364.js
Normal file
@@ -0,0 +1,19 @@
|
||||
import {
|
||||
visitAndApproveStorage
|
||||
} from '../../../support/ui-test-helper.js';
|
||||
|
||||
// See https://github.com/SVG-Edit/svgedit/issues/364
|
||||
describe('Issue 364; IE errorwith rectangle selection by click', function () {
|
||||
beforeEach(() => {
|
||||
visitAndApproveStorage();
|
||||
});
|
||||
|
||||
it('should set rectangle selection after click', function () {
|
||||
cy.get('#tools_rect_show')
|
||||
.trigger('mousedown', {force: true})
|
||||
.trigger('mouseup', {force: true})
|
||||
.should((button) => {
|
||||
expect(button).to.have.class('tool_button_current');
|
||||
});
|
||||
});
|
||||
});
|
||||
18
cypress/integration/ui/tool-selection.js
Normal file
18
cypress/integration/ui/tool-selection.js
Normal file
@@ -0,0 +1,18 @@
|
||||
import {
|
||||
visitAndApproveStorage
|
||||
} from '../../support/ui-test-helper.js';
|
||||
|
||||
describe('UI - Tool selection', function () {
|
||||
beforeEach(() => {
|
||||
visitAndApproveStorage();
|
||||
});
|
||||
|
||||
it('should set rectangle selection by click', function () {
|
||||
cy.get('#tools_rect_show')
|
||||
.trigger('mousedown', {force: true})
|
||||
.trigger('mouseup', {force: true})
|
||||
.should((button) => {
|
||||
expect(button).to.have.class('tool_button_current');
|
||||
});
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user