feat: Add successRedirectUrl to auth options (#6792)

This commit is contained in:
Oli Juhl
2024-03-25 08:55:21 +01:00
committed by GitHub
parent aa154665de
commit 0deb2776ad
11 changed files with 147 additions and 87 deletions

View File

@@ -1,66 +1,78 @@
const path = require("path")
const { Region, DiscountRule, Discount } = require("@medusajs/medusa")
const setupServer = require("../../../environment-helpers/setup-server")
const { useApi } = require("../../../environment-helpers/use-api")
const { initDb, useDb } = require("../../../environment-helpers/use-db")
const adminSeeder = require("../../../helpers/admin-seeder")
const { exportAllDeclaration } = require("@babel/types")
const { medusaIntegrationTestRunner } = require("medusa-test-utils")
const { createAdminUser } = require("../../../helpers/create-admin-user")
const { breaking } = require("../../../helpers/breaking")
const adminHeaders = {
headers: {
"x-medusa-access-token": "test_token",
},
}
jest.setTimeout(30000)
describe("/admin/auth", () => {
let medusaProcess
let dbConnection
medusaIntegrationTestRunner({
env: { MEDUSA_FF_MEDUSA_V2: true },
testSuite: ({ dbConnection, getContainer, api }) => {
let container
beforeAll(async () => {
const cwd = path.resolve(path.join(__dirname, "..", ".."))
dbConnection = await initDb({ cwd })
medusaProcess = await setupServer({ cwd })
await adminSeeder(dbConnection)
})
afterAll(async () => {
const db = useDb()
await db.shutdown()
medusaProcess.kill()
})
it("creates admin session correctly", async () => {
const api = useApi()
const response = await api
.post("/admin/auth", {
email: "admin@medusa.js",
password: "secret_password",
})
.catch((err) => {
console.log(err)
})
expect(response.status).toEqual(200)
expect(response.data.user.password_hash).toEqual(undefined)
expect(response.data.user).toMatchSnapshot({
email: "admin@medusa.js",
created_at: expect.any(String),
updated_at: expect.any(String),
beforeEach(async () => {
container = getContainer()
await createAdminUser(dbConnection, adminHeaders, container)
})
})
it("creates admin JWT token correctly", async () => {
const api = useApi()
it("creates admin session correctly", async () => {
const response = await breaking(
async () => {
return await api.post("/admin/auth", {
email: "admin@medusa.js",
password: "secret_password",
})
},
async () => {
return await api.post("/auth/admin/emailpass", {
email: "admin@medusa.js",
password: "secret_password",
})
}
)
const response = await api
.post("/admin/auth/token", {
email: "admin@medusa.js",
password: "secret_password",
expect(response.status).toEqual(200)
const v1Result = {
user: expect.objectContaining({
email: "admin@medusa.js",
created_at: expect.any(String),
updated_at: expect.any(String),
}),
}
// In V2, we respond with a token instead of the user object on session creation
const v2Result = { token: expect.any(String) }
expect(response.data).toEqual(
breaking(
() => v1Result,
() => v2Result
)
)
})
// TODO: Remove in V2, as this is no longer supported
it("creates admin JWT token correctly", async () => {
breaking(async () => {
const response = await api
.post("/admin/auth/token", {
email: "admin@medusa.js",
password: "secret_password",
})
.catch((err) => {
console.log(err)
})
expect(response.status).toEqual(200)
expect(response.data.access_token).toEqual(expect.any(String))
})
.catch((err) => {
console.log(err)
})
expect(response.status).toEqual(200)
expect(response.data.access_token).toEqual(expect.any(String))
})
})
},
})