| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- import { describe, expect, it } from 'vitest'
- import {
- generateOrganizationSettingsMenuItems,
- generateOrganizationSettingsSections,
- normalizeOrganizationSettingsPath,
- } from './OrganizationSettingsLayout'
- describe('generateOrganizationSettingsMenuItems', () => {
- it('includes webhooks entry for organization settings nav', () => {
- const items = generateOrganizationSettingsMenuItems({
- slug: 'my-org',
- showSecuritySettings: true,
- showSsoSettings: true,
- showLegalDocuments: true,
- })
- expect(items.some((item) => item.label === 'Webhooks')).toBe(true)
- expect(items.some((item) => item.href === '/org/my-org/webhooks')).toBe(true)
- })
- })
- describe('OrganizationSettingsLayout helpers', () => {
- it('returns expected organization settings sections and links', () => {
- const sections = generateOrganizationSettingsSections({
- slug: 'my-org',
- currentPath: '/org/my-org/general',
- showSecuritySettings: true,
- showSsoSettings: true,
- showLegalDocuments: true,
- })
- expect(sections.map((section) => section.heading)).toEqual([
- 'Configuration',
- 'Connections',
- 'Compliance',
- ])
- expect(sections.flatMap((section) => section.links.map((item) => item.label))).toEqual([
- 'General',
- 'Security',
- 'SSO',
- 'OAuth Apps',
- 'Webhooks',
- 'Audit Logs',
- 'Legal Documents',
- ])
- expect(
- sections.flatMap((section) => section.links).find((item) => item.label === 'General')
- ?.isActive
- ).toBe(true)
- })
- it('hides feature-flagged items when flags are disabled', () => {
- const sections = generateOrganizationSettingsSections({
- slug: 'my-org',
- currentPath: '/org/my-org/general',
- showSecuritySettings: false,
- showSsoSettings: false,
- showLegalDocuments: false,
- })
- expect(sections.map((section) => section.heading)).toEqual([
- 'Configuration',
- 'Connections',
- 'Compliance',
- ])
- expect(sections.flatMap((section) => section.links.map((item) => item.label))).toEqual([
- 'General',
- 'OAuth Apps',
- 'Webhooks',
- 'Audit Logs',
- ])
- })
- it('normalizes hash paths for active state checks', () => {
- const currentPath = normalizeOrganizationSettingsPath('/org/my-org/security#sso')
- const sections = generateOrganizationSettingsSections({
- slug: 'my-org',
- currentPath,
- showSecuritySettings: true,
- showSsoSettings: true,
- showLegalDocuments: true,
- })
- expect(
- sections.flatMap((section) => section.links).find((item) => item.label === 'Security')
- ?.isActive
- ).toBe(true)
- })
- it('keeps webhooks nav item active for nested endpoint routes', () => {
- const sections = generateOrganizationSettingsSections({
- slug: 'my-org',
- currentPath: '/org/my-org/webhooks/org-endpoint-1',
- showSecuritySettings: true,
- showSsoSettings: true,
- showLegalDocuments: true,
- })
- expect(
- sections.flatMap((section) => section.links).find((item) => item.label === 'Webhooks')
- ?.isActive
- ).toBe(true)
- })
- })
|