mirror of
https://github.com/maputnik/editor.git
synced 2025-12-06 06:10:00 +00:00
## Launch Checklist This PR fixes the problem with firefox not able to load a file when clicking the open file button. It does so by removing a very old dependency: `react-file-reader-input` It uses the "regular" `<label><a/><input type="file" /><label>` approach. It adds tests for both firefox and chrome although I'm not sure the firefox tests will stay... - [x] Briefly describe the changes in this PR. - [x] Write tests for all new functionality. - [x] Add an entry to `CHANGELOG.md` under the `## main` section.
50 lines
1.8 KiB
TypeScript
50 lines
1.8 KiB
TypeScript
/// <reference types="cypress-real-events" />
|
|
import { CypressHelper } from "@shellygo/cypress-test-utils";
|
|
import "cypress-real-events/support";
|
|
|
|
export default class MaputnikCypressHelper {
|
|
private helper = new CypressHelper({ defaultDataAttribute: "data-wd-key" });
|
|
|
|
public given = {
|
|
...this.helper.given,
|
|
};
|
|
|
|
public get = {
|
|
...this.helper.get,
|
|
};
|
|
|
|
public when = {
|
|
dragAndDropWithWait: (element: string, targetElement: string) => {
|
|
this.helper.get.elementByTestId(element).realMouseDown({ button: "left", position: "center" });
|
|
this.helper.get.elementByTestId(element).realMouseMove(0, 10, { position: "center" });
|
|
this.helper.get.elementByTestId(targetElement).realMouseMove(0, 0, { position: "center" });
|
|
this.helper.when.wait(1);
|
|
this.helper.get.elementByTestId(targetElement).realMouseUp();
|
|
},
|
|
clickCenter: (element: string) => {
|
|
this.helper.get.elementByTestId(element).realMouseDown({ button: "left", position: "center" });
|
|
this.helper.when.wait(200);
|
|
this.helper.get.elementByTestId(element).realMouseUp();
|
|
},
|
|
openFileByFixture: (fixture: string, buttonTestId: string, inputTestId: string) => {
|
|
cy.window().then((win) => {
|
|
const file = {
|
|
text: cy.stub().resolves(cy.fixture(fixture).then(JSON.stringify)),
|
|
};
|
|
const fileHandle = {
|
|
getFile: cy.stub().resolves(file),
|
|
};
|
|
if (!win.showOpenFilePicker) {
|
|
this.helper.get.elementByTestId(inputTestId).selectFile("cypress/fixtures/" + fixture, { force: true });
|
|
} else {
|
|
cy.stub(win, "showOpenFilePicker").resolves([fileHandle]);
|
|
this.helper.get.elementByTestId(buttonTestId).click();
|
|
}
|
|
});
|
|
},
|
|
...this.helper.when,
|
|
};
|
|
|
|
public beforeAndAfter = this.helper.beforeAndAfter;
|
|
}
|