This repository has been archived on 2024-10-29. You can view files and clone it, but cannot push or open issues or pull requests.
website/cypress/e2e/pages/application/[guildId]/[channelId]/settings.cy.ts

137 lines
4.8 KiB
TypeScript

import { deleteChannelWithChannelIdHandler } from "../../../../../fixtures/channels/[channelId]/delete"
import { putChannelWithChannelIdHandler } from "../../../../../fixtures/channels/[channelId]/put"
import {
channelExample,
channelExample2,
} from "../../../../../fixtures/channels/channel"
import { guildExample } from "../../../../../fixtures/guilds/guild"
import {
getGuildMemberNotOwnerWithGuildIdHandler,
getGuildMemberWithGuildIdHandler,
} from "../../../../../fixtures/guilds/[guildId]/get"
import {
getChannelWithChannelIdHandler,
getChannelWithChannelIdHandler2,
} from "../../../../../fixtures/channels/[channelId]/get"
import { authenticationHandlers } from "../../../../../fixtures/handler"
import { API_URL } from "../../../../../../tools/api"
describe("Pages > /application/[guildId]/[channelId]/settings", () => {
beforeEach(() => {
cy.task("stopMockServer")
})
it("should succeeds and update the channel name", () => {
cy.task("startMockServer", [
...authenticationHandlers,
getGuildMemberWithGuildIdHandler,
getChannelWithChannelIdHandler,
putChannelWithChannelIdHandler,
]).setCookie("refreshToken", "refresh-token")
cy.intercept(`${API_URL}${putChannelWithChannelIdHandler.url}*`).as(
"putChannelWithChannelIdHandler",
)
cy.visit(`/application/${guildExample.id}/${channelExample.id}/settings`)
cy.get("[data-cy=channel-name-input]")
.clear()
.type(putChannelWithChannelIdHandler.response.body.name)
cy.get("[data-cy=button-save-channel-settings]").click()
cy.wait("@putChannelWithChannelIdHandler").then(() => {
cy.location("pathname").should(
"eq",
`/application/${guildExample.id}/${channelExample.id}`,
)
})
})
it("should succeeds and delete the channel", () => {
cy.task("startMockServer", [
...authenticationHandlers,
getGuildMemberWithGuildIdHandler,
getChannelWithChannelIdHandler,
getChannelWithChannelIdHandler2,
deleteChannelWithChannelIdHandler,
]).setCookie("refreshToken", "refresh-token")
cy.intercept(`${API_URL}${deleteChannelWithChannelIdHandler.url}*`).as(
"deleteChannelWithChannelIdHandler",
)
cy.visit(`/application/${guildExample.id}/${channelExample.id}/settings`)
cy.get("[data-cy=button-delete-channel-settings]").click()
cy.get("[data-cy=confirm-popup-yes-button]").click()
cy.wait("@deleteChannelWithChannelIdHandler").then(() => {
cy.location("pathname").should(
"eq",
`/application/${guildExample.id}/${channelExample2.id}`,
)
})
})
it("should fails with too long channel name on update", () => {
cy.task("startMockServer", [
...authenticationHandlers,
getGuildMemberWithGuildIdHandler,
getChannelWithChannelIdHandler,
]).setCookie("refreshToken", "refresh-token")
cy.visit(`/application/${guildExample.id}/${channelExample.id}/settings`)
cy.get("[data-cy=channel-name-input]").type(
"random channel name that is really too long for a channel name",
)
cy.get("[data-cy=button-save-channel-settings]").click()
cy.get("#error-name").should(
"have.text",
"Error: The field must contain at most 20 characters.",
)
})
it("should redirect the user to `/404` if member is not owner", () => {
cy.task("startMockServer", [
...authenticationHandlers,
getGuildMemberNotOwnerWithGuildIdHandler,
getChannelWithChannelIdHandler,
]).setCookie("refreshToken", "refresh-token")
cy.visit(`/application/${guildExample.id}/${channelExample.id}/settings`, {
failOnStatusCode: false,
})
.get("[data-cy=status-code]")
.contains("404")
})
it("should redirect the user to `/404` if `guildId` or `channelId` are not numbers", () => {
cy.task("startMockServer", authenticationHandlers).setCookie(
"refreshToken",
"refresh-token",
)
cy.visit("/application/abc/abc/settings", {
failOnStatusCode: false,
})
.get("[data-cy=status-code]")
.contains("404")
})
it("should redirect the user to `/404` if `guildId` doesn't exist", () => {
cy.task("startMockServer", [
...authenticationHandlers,
getChannelWithChannelIdHandler,
]).setCookie("refreshToken", "refresh-token")
cy.visit(`/application/123/${channelExample.id}/settings`, {
failOnStatusCode: false,
})
.get("[data-cy=status-code]")
.contains("404")
})
it("should redirect the user to `/404` if `channelId` doesn't exist", () => {
cy.task("startMockServer", [
...authenticationHandlers,
getGuildMemberWithGuildIdHandler,
]).setCookie("refreshToken", "refresh-token")
cy.visit(`/application/${guildExample.id}/123/settings`, {
failOnStatusCode: false,
})
.get("[data-cy=status-code]")
.contains("404")
})
})
export {}