165 lines
No EOL
3.3 KiB
JavaScript
165 lines
No EOL
3.3 KiB
JavaScript
describe("The Home Page", () => {
|
|
beforeEach(() => {
|
|
});
|
|
|
|
it("successfully loads", () => {
|
|
cy.visit("/");
|
|
});
|
|
|
|
it("sets auth cookie when logging in via form submission", () => {
|
|
const username = "admin";
|
|
const password = "changeme";
|
|
|
|
cy.visit("/login");
|
|
|
|
cy.get("input[name=username]").type(username);
|
|
cy.get("input[name=password]").type(`${password}{enter}`);
|
|
|
|
cy.url().should("include", "/");
|
|
|
|
cy.getCookie("connect.sid").should("exist");
|
|
|
|
cy.get("li").contains("admin");
|
|
});
|
|
|
|
it("fails to log in with wrong password", () => {
|
|
const username = "admin";
|
|
const password = "wrongpassword";
|
|
|
|
cy.visit("/login");
|
|
|
|
cy.get("input[name=username]").type(username);
|
|
cy.get("input[name=password]").type(`${password}{enter}`);
|
|
|
|
cy.url().should("include", "/login");
|
|
|
|
cy.getCookie("connect.sid").should("not.exist");
|
|
});
|
|
|
|
it("logs out", () => {
|
|
const username = "admin";
|
|
const password = "changeme";
|
|
|
|
cy.visit("/login");
|
|
|
|
cy.get("input[name=username]").type(username);
|
|
cy.get("input[name=password]").type(`${password}{enter}`);
|
|
|
|
cy.url().should("include", "/");
|
|
|
|
cy.getCookie("connect.sid").should("exist");
|
|
|
|
cy.get("li").contains("admin");
|
|
|
|
cy.get("button").contains("Sign out").click();
|
|
|
|
cy.get("a").contains("Sign in");
|
|
});
|
|
});
|
|
|
|
describe("The Upload Page", () => {
|
|
beforeEach(() => {
|
|
cy.request("POST", "/login/password", {
|
|
username: "admin",
|
|
password: "changeme"
|
|
});
|
|
});
|
|
|
|
it("successfully loads", () => {
|
|
cy.visit("/");
|
|
|
|
cy.getCookie("connect.sid").should("exist");
|
|
|
|
cy.get("li").contains("admin");
|
|
});
|
|
|
|
it("successfully uploads a file", () => {
|
|
cy.visit("/");
|
|
|
|
cy.getCookie("connect.sid").should("exist");
|
|
|
|
cy.get("li").contains("admin");
|
|
|
|
cy.get("input[type=file]").attachFile("test.png");
|
|
|
|
cy.get("input[type=button][value=Upload]").click();
|
|
|
|
cy.url().should("include", "/");
|
|
|
|
cy.get("img").should("exist");
|
|
});
|
|
|
|
it("successfully deletes a file", () => {
|
|
cy.visit("/");
|
|
|
|
cy.getCookie("connect.sid").should("exist");
|
|
|
|
cy.get("li").contains("admin");
|
|
|
|
cy.get("input[type=button][value=Upload]").click();
|
|
|
|
cy.url().should("include", "/");
|
|
|
|
cy.get("img").should("exist");
|
|
|
|
cy.get("img").realHover();
|
|
|
|
cy.get("button[class=destroy]").click();
|
|
|
|
cy.url().should("include", "/");
|
|
|
|
cy.get("img").should("not.exist");
|
|
});
|
|
|
|
it("file successfully expires", () => {
|
|
cy.visit("/");
|
|
|
|
cy.getCookie("connect.sid").should("exist");
|
|
|
|
cy.get("li").contains("admin");
|
|
|
|
cy.get("input[type=file]").attachFile("test.png");
|
|
|
|
cy.get("select").select("1 minute");
|
|
|
|
cy.get("input[type=button][value=Upload]").click();
|
|
|
|
cy.url().should("include", "/");
|
|
|
|
cy.get("img").should("exist");
|
|
|
|
cy.wait(120000); //2 minutes
|
|
|
|
cy.reload();
|
|
|
|
cy.get("img").should("not.exist");
|
|
});
|
|
|
|
it("ShareX successfully uploads a file", () => {
|
|
cy.fixture("test.png", "base64")
|
|
.then((file) => Cypress.Blob.base64StringToBlob(file))
|
|
.then((blob) => {
|
|
let formdata = new FormData();
|
|
formdata.append("fileupload", blob, "test.png");
|
|
|
|
cy.request({
|
|
url: "/sharex",
|
|
method: "POST",
|
|
headers: {
|
|
"Content-Type": "multipart/form-data",
|
|
"key": "pleaseSetAPI_KEY"
|
|
},
|
|
body: formdata
|
|
}).its('status').should('be.equal', 200);
|
|
});
|
|
|
|
cy.visit("/");
|
|
|
|
cy.getCookie("connect.sid").should("exist");
|
|
|
|
cy.get("li").contains("admin");
|
|
|
|
cy.get("img").should("exist");
|
|
|
|
});
|
|
}); |