Skip to content

Commit 8bdc8c3

Browse files
authored
test(e2e): Expand Vue testing (#8068)
1 parent 154eec9 commit 8bdc8c3

File tree

14 files changed

+471
-2
lines changed

14 files changed

+471
-2
lines changed

.changeset/hungry-chicken-flash.md

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

integration/templates/vue-vite/src/router.ts

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,48 @@ const routes = [
6868
path: '/billing/subscription-details-btn',
6969
component: () => import('./views/billing/SubscriptionDetailsBtn.vue'),
7070
},
71+
// Composable state routes (public, for testing composable output)
72+
{
73+
name: 'AuthState',
74+
path: '/auth-state',
75+
component: () => import('./views/AuthState.vue'),
76+
},
77+
{
78+
name: 'UserState',
79+
path: '/user-state',
80+
component: () => import('./views/UserState.vue'),
81+
},
82+
{
83+
name: 'SessionState',
84+
path: '/session-state',
85+
component: () => import('./views/SessionState.vue'),
86+
},
87+
{
88+
name: 'OrgState',
89+
path: '/org-state',
90+
component: () => import('./views/OrgState.vue'),
91+
},
92+
// Component test routes
93+
{
94+
name: 'SignOut',
95+
path: '/sign-out',
96+
component: () => import('./views/SignOutPage.vue'),
97+
},
98+
{
99+
name: 'OrganizationList',
100+
path: '/org-list',
101+
component: () => import('./views/OrganizationListPage.vue'),
102+
},
103+
{
104+
name: 'CreateOrganization',
105+
path: '/create-org',
106+
component: () => import('./views/CreateOrganizationPage.vue'),
107+
},
108+
{
109+
name: 'ShowComponent',
110+
path: '/show-component',
111+
component: () => import('./views/ShowComponent.vue'),
112+
},
71113
];
72114

73115
const router = createRouter({
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<script setup lang="ts">
2+
import { useAuth } from '@clerk/vue';
3+
4+
const { isLoaded, isSignedIn, userId, sessionId, orgId, orgRole, orgSlug } = useAuth();
5+
</script>
6+
7+
<template>
8+
<div id="auth-state">
9+
<p data-auth-is-loaded>{{ isLoaded }}</p>
10+
<p data-auth-is-signed-in>{{ isSignedIn }}</p>
11+
<p data-auth-user-id>{{ userId }}</p>
12+
<p data-auth-session-id>{{ sessionId }}</p>
13+
<p data-auth-org-id>{{ orgId }}</p>
14+
<p data-auth-org-role>{{ orgRole }}</p>
15+
<p data-auth-org-slug>{{ orgSlug }}</p>
16+
</div>
17+
</template>
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<script setup lang="ts">
2+
import { CreateOrganization } from '@clerk/vue';
3+
</script>
4+
5+
<template>
6+
<CreateOrganization />
7+
</template>
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<script setup lang="ts">
2+
import { useOrganization } from '@clerk/vue';
3+
4+
const { isLoaded, organization, membership } = useOrganization();
5+
</script>
6+
7+
<template>
8+
<div id="org-state">
9+
<p data-org-is-loaded>{{ isLoaded }}</p>
10+
<p data-org-id>{{ organization?.id }}</p>
11+
<p data-org-name>{{ organization?.name }}</p>
12+
<p data-org-slug>{{ organization?.slug }}</p>
13+
<p data-org-role>{{ membership?.role }}</p>
14+
</div>
15+
</template>
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<script setup lang="ts">
2+
import { OrganizationList } from '@clerk/vue';
3+
</script>
4+
5+
<template>
6+
<OrganizationList />
7+
</template>
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<script setup lang="ts">
2+
import { useSession } from '@clerk/vue';
3+
4+
const { isLoaded, isSignedIn, session } = useSession();
5+
</script>
6+
7+
<template>
8+
<div id="session-state">
9+
<p data-session-is-loaded>{{ isLoaded }}</p>
10+
<p data-session-is-signed-in>{{ isSignedIn }}</p>
11+
<p data-session-id>{{ session?.id }}</p>
12+
<p data-session-status>{{ session?.status }}</p>
13+
<p data-session-user-id>{{ session?.user?.id }}</p>
14+
</div>
15+
</template>
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
<script setup lang="ts">
2+
import { Show } from '@clerk/vue';
3+
</script>
4+
5+
<template>
6+
<div id="show-tests">
7+
<div data-show-signed-in>
8+
<Show when="signed-in">
9+
<p>show-signed-in-content</p>
10+
</Show>
11+
</div>
12+
<div data-show-signed-out>
13+
<Show when="signed-out">
14+
<p>show-signed-out-content</p>
15+
</Show>
16+
</div>
17+
<div data-show-role>
18+
<Show :when="{ role: 'org:admin' }">
19+
<p>show-admin-content</p>
20+
<template #fallback>
21+
<p>show-admin-fallback</p>
22+
</template>
23+
</Show>
24+
</div>
25+
<div data-show-permission>
26+
<Show :when="{ permission: 'org:sys_memberships:manage' }">
27+
<p>show-permission-content</p>
28+
<template #fallback>
29+
<p>show-permission-fallback</p>
30+
</template>
31+
</Show>
32+
</div>
33+
</div>
34+
</template>
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<script setup lang="ts">
2+
import { SignOutButton, Show } from '@clerk/vue';
3+
</script>
4+
5+
<template>
6+
<div>
7+
<Show when="signed-in">
8+
<p data-signed-in>You are signed in</p>
9+
<SignOutButton />
10+
</Show>
11+
<Show when="signed-out">
12+
<p data-signed-out>You are signed out</p>
13+
</Show>
14+
</div>
15+
</template>
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<script setup lang="ts">
2+
import { useUser } from '@clerk/vue';
3+
4+
const { isLoaded, isSignedIn, user } = useUser();
5+
</script>
6+
7+
<template>
8+
<div id="user-state">
9+
<p data-user-is-loaded>{{ isLoaded }}</p>
10+
<p data-user-is-signed-in>{{ isSignedIn }}</p>
11+
<p data-user-id>{{ user?.id }}</p>
12+
<p data-user-email>{{ user?.primaryEmailAddress?.emailAddress }}</p>
13+
<p data-user-first-name>{{ user?.firstName }}</p>
14+
<p data-user-last-name>{{ user?.lastName }}</p>
15+
</div>
16+
</template>

0 commit comments

Comments
 (0)