Skip to content

Commit 984c108

Browse files
committed
Merge branch 'main' into renovate/vue-dev-minor
# Conflicts: # pnpm-lock.yaml
2 parents 3dd1b59 + 0bdd0df commit 984c108

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

64 files changed

+1734
-828
lines changed

.changeset/fair-bars-agree.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
'@clerk/shared': patch
3+
---
4+
5+
6+
Improve layout behaviour with `<PaymentElement fallback={} />`.
7+
- Disables Stripe's loader, and promotes the usage of the `fallback` prop.

.changeset/famous-news-judge.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
'@clerk/clerk-js': patch
3+
'@clerk/shared': patch
4+
---
5+
6+
Fixes an issue where cookies were not properly cleared on sign out when using non-default cookie attributes.

.changeset/five-jokes-clap.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
---
2+
"@clerk/backend": patch
3+
---
4+
5+
Adds scoping and secret key retrieval to machines BAPI methods:
6+
7+
```ts
8+
// Creates a new machine scope
9+
clerkClient.machines.createScope('machine_id', 'to_machine_id')
10+
11+
// Deletes a machine scope
12+
clerkClient.machines.deleteScope('machine_id', 'other_machine_id')
13+
14+
// Retrieve a secret key
15+
clerkClient.machines.getSecretKey('machine_id')
16+
```

.changeset/lovely-buttons-say.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
---
2+
---

.changeset/rare-rockets-begin.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
---
2+
---

.changeset/silver-singers-train.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@clerk/backend': patch
3+
---
4+
5+
Fix SAML Connection `attributeMapping` keys not being converted from camelCase to snake_case.

.changeset/tidy-windows-travel.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@clerk/backend': patch
3+
---
4+
5+
Fixes an issue where the Clerk SDK was improperly detecting the request's origin.

.changeset/twelve-rocks-refuse.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
---
2+
---

.changeset/vast-hoops-teach.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@clerk/clerk-js': patch
3+
---
4+
5+
Improve CLS when PaymentElement mounts in Checkout.
Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
import { test } from '@playwright/test';
2+
3+
import type { Application } from '../models/application';
4+
import { appConfigs } from '../presets';
5+
import type { FakeUser } from '../testUtils';
6+
import { createTestUtils } from '../testUtils';
7+
8+
test.describe('session tasks eject flow @nextjs', () => {
9+
test.describe.configure({ mode: 'serial' });
10+
let app: Application;
11+
let user: FakeUser;
12+
13+
test.beforeAll(async () => {
14+
app = await appConfigs.next.appRouter
15+
.clone()
16+
.addFile(
17+
'src/app/provider.tsx',
18+
() => `'use client'
19+
import { ClerkProvider } from "@clerk/nextjs";
20+
21+
export function Provider({ children }: { children: any }) {
22+
return (
23+
<ClerkProvider taskUrls={{ 'select-organization': '/onboarding/select-organization' }}>
24+
{children}
25+
</ClerkProvider>
26+
)
27+
}`,
28+
)
29+
.addFile(
30+
'src/app/layout.tsx',
31+
() => `import './globals.css';
32+
import { Inter } from 'next/font/google';
33+
import { Provider } from './provider';
34+
35+
const inter = Inter({ subsets: ['latin'] });
36+
37+
export const metadata = {
38+
title: 'Create Next App',
39+
description: 'Generated by create next app',
40+
};
41+
42+
export default function RootLayout({ children }: { children: React.ReactNode }) {
43+
return (
44+
<Provider>
45+
<html lang='en'>
46+
<body className={inter.className}>{children}</body>
47+
</html>
48+
</Provider>
49+
);
50+
}`,
51+
)
52+
.addFile(
53+
'src/app/onboarding/select-organization/page.tsx',
54+
() => `
55+
import { TaskSelectOrganization } from '@clerk/nextjs';
56+
57+
export default function Page() {
58+
return (
59+
<TaskSelectOrganization redirectUrlComplete='/'/>
60+
);
61+
}`,
62+
)
63+
.commit();
64+
65+
await app.setup();
66+
await app.withEnv(appConfigs.envs.withSessionTasks);
67+
await app.dev();
68+
69+
const u = createTestUtils({ app });
70+
user = u.services.users.createFakeUser();
71+
await u.services.users.createBapiUser(user);
72+
});
73+
74+
test.afterAll(async () => {
75+
const u = createTestUtils({ app });
76+
await user.deleteIfExists();
77+
await u.services.organizations.deleteAll();
78+
await app.teardown();
79+
});
80+
81+
test.afterEach(async ({ page, context }) => {
82+
const u = createTestUtils({ app, page, context });
83+
await u.page.signOut();
84+
await u.page.context().clearCookies();
85+
});
86+
87+
test('redirects to completion page after resolving task', async ({ page, context }) => {
88+
const u = createTestUtils({ app, page, context });
89+
90+
// Performs sign-in
91+
await u.po.signIn.goTo();
92+
await u.po.signIn.setIdentifier(user.email);
93+
await u.po.signIn.continue();
94+
await u.po.signIn.setPassword(user.password);
95+
await u.po.signIn.continue();
96+
await u.po.expect.toBeSignedIn();
97+
98+
// Complete the organization selection task
99+
await u.page.waitForAppUrl('/onboarding/select-organization');
100+
const fakeOrganization = Object.assign(u.services.organizations.createFakeOrganization(), {
101+
slug: u.services.organizations.createFakeOrganization().slug + '-eject-flow',
102+
});
103+
await u.po.sessionTask.resolveForceOrganizationSelectionTask(fakeOrganization);
104+
await u.po.expect.toHaveResolvedTask();
105+
106+
// Verify redirect to completion page
107+
await u.page.waitForAppUrl('/');
108+
});
109+
});

0 commit comments

Comments
 (0)