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]/channels/create.cy.ts

77 lines
2.7 KiB
TypeScript

import { postChannelsWithGuildIdHandler } from "../../../../../fixtures/guilds/[guildId]/channels/post"
import { API_URL } from "../../../../../../tools/api"
import { channelExample2 } from "../../../../../fixtures/channels/channel"
import { guildExample } from "../../../../../fixtures/guilds/guild"
import { getGuildMemberWithGuildIdHandler } from "../../../../../fixtures/guilds/[guildId]/get"
import { authenticationHandlers } from "../../../../../fixtures/handler"
import { getChannelWithChannelIdHandler2 } from "../../../../../fixtures/channels/[channelId]/get"
describe("Pages > /application/[guildId]/channels/create", () => {
beforeEach(() => {
cy.task("stopMockServer")
})
it("should succeeds and create the channel", () => {
cy.task("startMockServer", [
...authenticationHandlers,
getGuildMemberWithGuildIdHandler,
postChannelsWithGuildIdHandler,
getChannelWithChannelIdHandler2,
]).setCookie("refreshToken", "refresh-token")
cy.intercept(`${API_URL}${postChannelsWithGuildIdHandler.url}*`).as(
"postChannelsWithGuildIdHandler",
)
cy.visit(`/application/${guildExample.id}/channels/create`)
cy.get("[data-cy=channel-name-input]").type(channelExample2.name)
cy.get("[data-cy=button-create-channel]").click()
cy.wait("@postChannelsWithGuildIdHandler").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,
]).setCookie("refreshToken", "refresh-token")
cy.visit(`/application/${guildExample.id}/channels/create`)
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-create-channel]").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 `guildId` is not a number", () => {
cy.task("startMockServer", authenticationHandlers).setCookie(
"refreshToken",
"refresh-token",
)
cy.visit("/application/abc/channels/create", {
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]).setCookie(
"refreshToken",
"refresh-token",
)
cy.visit(`/application/123/channels/create`, {
failOnStatusCode: false,
})
.get("[data-cy=status-code]")
.contains("404")
})
})
export {}