feat: Support invites in CLI for V2 (#6798)

**What**

- Add invite support to cli for 2.0
- Allow email to be passed upon accepting an invite
This commit is contained in:
Oli Juhl
2024-03-26 20:02:56 +00:00
committed by GitHub
parent 16860cc883
commit 0b23e7efb8
8 changed files with 98 additions and 85 deletions
@@ -1,7 +1,7 @@
import { IUserModuleService } from "@medusajs/types"
import { ModuleRegistrationName } from "@medusajs/modules-sdk"
import { createAdminUser } from "../../../helpers/create-admin-user"
import { IUserModuleService } from "@medusajs/types"
import { medusaIntegrationTestRunner } from "medusa-test-utils"
import { createAdminUser } from "../../../helpers/create-admin-user"
jest.setTimeout(50000)
@@ -86,6 +86,41 @@ medusaIntegrationTestRunner({
})
)
})
it("should accept an invite with email different from invite", async () => {
const invite = await userModuleService.createInvites({
email: "potential_member@test.com",
})
const authResponse = await api.post(`/auth/admin/emailpass`, {
email: "some-email@test.com",
password: "supersecret",
})
expect(authResponse.status).toEqual(200)
const token = authResponse.data.token
const acceptResponse = await api.post(
`/admin/invites/accept?token=${invite.token}`,
{
first_name: "John",
email: "some-email@test.com",
},
{
headers: {
Authorization: `Bearer ${token}`,
},
}
)
expect(acceptResponse.status).toEqual(200)
expect(acceptResponse.data.user).toEqual(
expect.objectContaining({
email: "some-email@test.com",
first_name: "John",
})
)
})
})
},
})
@@ -1,33 +0,0 @@
import { createAdminUser } from "../../../helpers/create-admin-user"
import { medusaIntegrationTestRunner } from "medusa-test-utils"
jest.setTimeout(50000)
const env = { MEDUSA_FF_MEDUSA_V2: true }
const adminHeaders = {
headers: { "x-medusa-access-token": "test_token" },
}
medusaIntegrationTestRunner({
env,
testSuite: ({ dbConnection, getContainer, api }) => {
describe("POST /admin/users", () => {
beforeEach(async () => {
await createAdminUser(dbConnection, adminHeaders, getContainer())
})
it("create a user", async () => {
const body = {
email: "test_member@test.com",
}
const response = await api.post(`/admin/users`, body, adminHeaders)
expect(response.status).toEqual(200)
expect(response.data).toEqual({
user: expect.objectContaining(body),
})
})
})
},
})