HelpPanel.utils.test.ts57 lines · main
1import { describe, expect, it } from 'vitest'
2
3import { getSupportLinkQueryParams } from './HelpPanel.utils'
4
5describe('getSupportLinkQueryParams', () => {
6 it('returns { projectRef } when project has parent_project_ref', () => {
7 expect(
8 getSupportLinkQueryParams(
9 { parent_project_ref: 'main-project' },
10 { slug: 'my-org' },
11 'router-ref'
12 )
13 ).toEqual({ projectRef: 'main-project' })
14 })
15
16 it('returns { projectRef } from routerRef when project has no parent_project_ref', () => {
17 expect(getSupportLinkQueryParams({}, { slug: 'my-org' }, 'router-ref')).toEqual({
18 projectRef: 'router-ref',
19 })
20 })
21
22 it('returns { projectRef } from routerRef when project is undefined', () => {
23 expect(getSupportLinkQueryParams(undefined, { slug: 'my-org' }, 'router-ref')).toEqual({
24 projectRef: 'router-ref',
25 })
26 })
27
28 it('returns { orgSlug } when no projectRef (no project, no routerRef)', () => {
29 expect(getSupportLinkQueryParams(undefined, { slug: 'my-org' }, undefined)).toEqual({
30 orgSlug: 'my-org',
31 })
32 })
33
34 it('returns { orgSlug } when project and routerRef are undefined but org has slug', () => {
35 expect(getSupportLinkQueryParams(undefined, { slug: 'acme' }, undefined)).toEqual({
36 orgSlug: 'acme',
37 })
38 })
39
40 it('returns undefined when project, org and routerRef give no ref', () => {
41 expect(getSupportLinkQueryParams(undefined, undefined, undefined)).toBeUndefined()
42 })
43
44 it('returns undefined when org has no slug and no projectRef', () => {
45 expect(getSupportLinkQueryParams(undefined, {}, undefined)).toBeUndefined()
46 })
47
48 it('returns undefined when org is undefined and no projectRef', () => {
49 expect(getSupportLinkQueryParams(undefined, undefined, undefined)).toBeUndefined()
50 })
51
52 it('prefers parent_project_ref over routerRef when both are present', () => {
53 expect(
54 getSupportLinkQueryParams({ parent_project_ref: 'parent-ref' }, { slug: 'org' }, 'router-ref')
55 ).toEqual({ projectRef: 'parent-ref' })
56 })
57})