@sanity/cli 6.0.0-alpha.4 → 6.0.0-alpha.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/actions/dev/startStudioDevServer.js +3 -8
- package/dist/actions/dev/startStudioDevServer.js.map +1 -1
- package/dist/actions/dev/types.d.ts +1 -3
- package/dist/actions/dev/types.js.map +1 -1
- package/dist/actions/documents/validate.d.ts +0 -2
- package/dist/actions/documents/validate.js +21 -1
- package/dist/actions/documents/validate.js.map +1 -1
- package/dist/actions/exec/execScript.js +1 -1
- package/dist/actions/exec/execScript.js.map +1 -1
- package/dist/actions/graphql/__tests__/getGraphQLAPIs.test.js +1 -1
- package/dist/actions/graphql/__tests__/getGraphQLAPIs.test.js.map +1 -1
- package/dist/actions/graphql/getGraphQLAPIs.js +1 -1
- package/dist/actions/graphql/getGraphQLAPIs.js.map +1 -1
- package/dist/actions/manifest/extractManifest.js +1 -4
- package/dist/actions/manifest/extractManifest.js.map +1 -1
- package/dist/actions/schema/deleteSchemaAction.d.ts +13 -5
- package/dist/actions/schema/deleteSchemaAction.js +12 -17
- package/dist/actions/schema/deleteSchemaAction.js.map +1 -1
- package/dist/actions/schema/deploySchemas.d.ts +15 -0
- package/dist/actions/schema/deploySchemas.js +98 -0
- package/dist/actions/schema/deploySchemas.js.map +1 -0
- package/dist/actions/schema/listSchemas.d.ts +12 -0
- package/dist/actions/schema/listSchemas.js +119 -0
- package/dist/actions/schema/listSchemas.js.map +1 -0
- package/dist/actions/schema/schemaStoreTypes.d.ts +0 -11
- package/dist/actions/schema/schemaStoreTypes.js.map +1 -1
- package/dist/actions/schema/utils/debug.d.ts +2 -0
- package/dist/actions/schema/utils/debug.js +5 -0
- package/dist/actions/schema/utils/debug.js.map +1 -0
- package/dist/actions/schema/utils/manifestExtractor.d.ts +3 -8
- package/dist/actions/schema/utils/manifestExtractor.js +12 -17
- package/dist/actions/schema/utils/manifestExtractor.js.map +1 -1
- package/dist/actions/schema/utils/manifestReader.d.ts +2 -9
- package/dist/actions/schema/utils/manifestReader.js +6 -12
- package/dist/actions/schema/utils/manifestReader.js.map +1 -1
- package/dist/actions/schema/utils/schemaStoreOutStrings.d.ts +0 -1
- package/dist/actions/schema/utils/schemaStoreOutStrings.js +1 -1
- package/dist/actions/schema/utils/schemaStoreOutStrings.js.map +1 -1
- package/dist/actions/schema/utils/schemaStoreValidation.d.ts +10 -62
- package/dist/actions/schema/utils/schemaStoreValidation.js +38 -125
- package/dist/actions/schema/utils/schemaStoreValidation.js.map +1 -1
- package/dist/actions/schema/utils/uniqByProjectIdDataset.d.ts +14 -0
- package/dist/actions/schema/utils/uniqByProjectIdDataset.js +9 -0
- package/dist/actions/schema/utils/uniqByProjectIdDataset.js.map +1 -0
- package/dist/actions/users/getMembersForProject.d.ts +1 -3
- package/dist/actions/users/getMembersForProject.js +6 -17
- package/dist/actions/users/getMembersForProject.js.map +1 -1
- package/dist/actions/users/types.d.ts +0 -11
- package/dist/actions/users/types.js.map +1 -1
- package/dist/commands/__tests__/debug.test.js +113 -220
- package/dist/commands/__tests__/debug.test.js.map +1 -1
- package/dist/commands/__tests__/deploy.test.js +325 -293
- package/dist/commands/__tests__/deploy.test.js.map +1 -1
- package/dist/commands/__tests__/dev.test.js +62 -19
- package/dist/commands/__tests__/dev.test.js.map +1 -1
- package/dist/commands/__tests__/init/init.authentication.test.js +40 -27
- package/dist/commands/__tests__/init/init.authentication.test.js.map +1 -1
- package/dist/commands/__tests__/init/init.create-new-project.test.js +84 -85
- package/dist/commands/__tests__/init/init.create-new-project.test.js.map +1 -1
- package/dist/commands/__tests__/init/init.plan.test.js +103 -44
- package/dist/commands/__tests__/init/init.plan.test.js.map +1 -1
- package/dist/commands/__tests__/init/init.setup.test.js +85 -29
- package/dist/commands/__tests__/init/init.setup.test.js.map +1 -1
- package/dist/commands/__tests__/install.test.js +46 -22
- package/dist/commands/__tests__/install.test.js.map +1 -1
- package/dist/commands/__tests__/logout.test.js +8 -5
- package/dist/commands/__tests__/logout.test.js.map +1 -1
- package/dist/commands/__tests__/manage.test.js +29 -24
- package/dist/commands/__tests__/manage.test.js.map +1 -1
- package/dist/commands/__tests__/versions.test.js +22 -14
- package/dist/commands/__tests__/versions.test.js.map +1 -1
- package/dist/commands/backup/__tests__/disable.test.js +72 -75
- package/dist/commands/backup/__tests__/disable.test.js.map +1 -1
- package/dist/commands/backup/__tests__/download.test.js +166 -77
- package/dist/commands/backup/__tests__/download.test.js.map +1 -1
- package/dist/commands/backup/__tests__/enable.test.js +109 -140
- package/dist/commands/backup/__tests__/enable.test.js.map +1 -1
- package/dist/commands/backup/__tests__/list.test.js +84 -75
- package/dist/commands/backup/__tests__/list.test.js.map +1 -1
- package/dist/commands/backup/disable.js +5 -11
- package/dist/commands/backup/disable.js.map +1 -1
- package/dist/commands/backup/enable.js +5 -11
- package/dist/commands/backup/enable.js.map +1 -1
- package/dist/commands/backup/list.js +7 -8
- package/dist/commands/backup/list.js.map +1 -1
- package/dist/commands/cors/__tests__/add.test.js +68 -38
- package/dist/commands/cors/__tests__/add.test.js.map +1 -1
- package/dist/commands/cors/__tests__/delete.test.js +52 -37
- package/dist/commands/cors/__tests__/delete.test.js.map +1 -1
- package/dist/commands/cors/__tests__/list.test.js +80 -57
- package/dist/commands/cors/__tests__/list.test.js.map +1 -1
- package/dist/commands/cors/add.js +5 -13
- package/dist/commands/cors/add.js.map +1 -1
- package/dist/commands/cors/delete.js +7 -15
- package/dist/commands/cors/delete.js.map +1 -1
- package/dist/commands/cors/list.js +2 -10
- package/dist/commands/cors/list.js.map +1 -1
- package/dist/commands/dataset/__tests__/copy.test.js +197 -89
- package/dist/commands/dataset/__tests__/copy.test.js.map +1 -1
- package/dist/commands/dataset/__tests__/create.test.js +147 -117
- package/dist/commands/dataset/__tests__/create.test.js.map +1 -1
- package/dist/commands/dataset/__tests__/delete.test.js +75 -68
- package/dist/commands/dataset/__tests__/delete.test.js.map +1 -1
- package/dist/commands/dataset/__tests__/export.test.js +123 -83
- package/dist/commands/dataset/__tests__/export.test.js.map +1 -1
- package/dist/commands/dataset/__tests__/list.test.js +107 -65
- package/dist/commands/dataset/__tests__/list.test.js.map +1 -1
- package/dist/commands/dataset/alias/__tests__/create.test.js +114 -74
- package/dist/commands/dataset/alias/__tests__/create.test.js.map +1 -1
- package/dist/commands/dataset/alias/__tests__/delete.test.js +40 -29
- package/dist/commands/dataset/alias/__tests__/delete.test.js.map +1 -1
- package/dist/commands/dataset/alias/__tests__/link.test.js +114 -74
- package/dist/commands/dataset/alias/__tests__/link.test.js.map +1 -1
- package/dist/commands/dataset/alias/__tests__/unlink.test.js +44 -29
- package/dist/commands/dataset/alias/__tests__/unlink.test.js.map +1 -1
- package/dist/commands/dataset/export.js +4 -4
- package/dist/commands/dataset/export.js.map +1 -1
- package/dist/commands/dataset/visibility/__tests__/get.test.js +48 -67
- package/dist/commands/dataset/visibility/__tests__/get.test.js.map +1 -1
- package/dist/commands/dataset/visibility/__tests__/set.test.js +76 -123
- package/dist/commands/dataset/visibility/__tests__/set.test.js.map +1 -1
- package/dist/commands/dev.js +0 -1
- package/dist/commands/dev.js.map +1 -1
- package/dist/commands/docs/__tests__/search.test.js +8 -7
- package/dist/commands/docs/__tests__/search.test.js.map +1 -1
- package/dist/commands/documents/__tests__/create.test.js +328 -265
- package/dist/commands/documents/__tests__/create.test.js.map +1 -1
- package/dist/commands/documents/__tests__/delete.test.js +119 -87
- package/dist/commands/documents/__tests__/delete.test.js.map +1 -1
- package/dist/commands/documents/__tests__/get.test.js +68 -95
- package/dist/commands/documents/__tests__/get.test.js.map +1 -1
- package/dist/commands/documents/__tests__/query.test.js +84 -189
- package/dist/commands/documents/__tests__/query.test.js.map +1 -1
- package/dist/commands/documents/__tests__/validate.test.js +52 -29
- package/dist/commands/documents/__tests__/validate.test.js.map +1 -1
- package/dist/commands/documents/create.d.ts +1 -0
- package/dist/commands/documents/create.js +10 -9
- package/dist/commands/documents/create.js.map +1 -1
- package/dist/commands/documents/delete.js +2 -3
- package/dist/commands/documents/delete.js.map +1 -1
- package/dist/commands/documents/get.js +2 -3
- package/dist/commands/documents/get.js.map +1 -1
- package/dist/commands/documents/query.js +2 -3
- package/dist/commands/documents/query.js.map +1 -1
- package/dist/commands/documents/validate.js +0 -20
- package/dist/commands/documents/validate.js.map +1 -1
- package/dist/commands/graphql/__tests__/list.test.js +57 -45
- package/dist/commands/graphql/__tests__/list.test.js.map +1 -1
- package/dist/commands/graphql/__tests__/undeploy.test.js +85 -59
- package/dist/commands/graphql/__tests__/undeploy.test.js.map +1 -1
- package/dist/commands/graphql/list.js +2 -2
- package/dist/commands/graphql/list.js.map +1 -1
- package/dist/commands/graphql/undeploy.js +4 -9
- package/dist/commands/graphql/undeploy.js.map +1 -1
- package/dist/commands/hook/__tests__/attempt.test.js +48 -33
- package/dist/commands/hook/__tests__/attempt.test.js.map +1 -1
- package/dist/commands/hook/__tests__/create.test.js +49 -51
- package/dist/commands/hook/__tests__/create.test.js.map +1 -1
- package/dist/commands/hook/__tests__/delete.test.js +43 -30
- package/dist/commands/hook/__tests__/delete.test.js.map +1 -1
- package/dist/commands/hook/__tests__/list.test.js +38 -31
- package/dist/commands/hook/__tests__/list.test.js.map +1 -1
- package/dist/commands/hook/__tests__/logs.test.js +68 -40
- package/dist/commands/hook/__tests__/logs.test.js.map +1 -1
- package/dist/commands/hook/create.js +2 -6
- package/dist/commands/hook/create.js.map +1 -1
- package/dist/commands/hook/delete.js +5 -17
- package/dist/commands/hook/delete.js.map +1 -1
- package/dist/commands/hook/list.js +2 -8
- package/dist/commands/hook/list.js.map +1 -1
- package/dist/commands/manifest/__tests__/extract.test.js +22 -13
- package/dist/commands/manifest/__tests__/extract.test.js.map +1 -1
- package/dist/commands/media/__tests__/create-aspect.test.js +41 -28
- package/dist/commands/media/__tests__/create-aspect.test.js.map +1 -1
- package/dist/commands/media/__tests__/delete-aspect.test.js +44 -35
- package/dist/commands/media/__tests__/delete-aspect.test.js.map +1 -1
- package/dist/commands/media/__tests__/deploy-aspect.test.js +67 -80
- package/dist/commands/media/__tests__/deploy-aspect.test.js.map +1 -1
- package/dist/commands/media/__tests__/export.test.js +365 -66
- package/dist/commands/media/__tests__/export.test.js.map +1 -1
- package/dist/commands/media/__tests__/import.test.js +171 -105
- package/dist/commands/media/__tests__/import.test.js.map +1 -1
- package/dist/commands/media/export.js +2 -2
- package/dist/commands/media/export.js.map +1 -1
- package/dist/commands/media/import.js +2 -2
- package/dist/commands/media/import.js.map +1 -1
- package/dist/commands/projects/__tests__/list.test.js +5 -4
- package/dist/commands/projects/__tests__/list.test.js.map +1 -1
- package/dist/commands/projects/list.js +2 -6
- package/dist/commands/projects/list.js.map +1 -1
- package/dist/commands/schema/__tests__/delete.test.js +396 -151
- package/dist/commands/schema/__tests__/delete.test.js.map +1 -1
- package/dist/commands/schema/__tests__/deploy.test.js +348 -0
- package/dist/commands/schema/__tests__/deploy.test.js.map +1 -0
- package/dist/commands/schema/__tests__/extract.test.js +19 -11
- package/dist/commands/schema/__tests__/extract.test.js.map +1 -1
- package/dist/commands/schema/__tests__/list.test.js +399 -0
- package/dist/commands/schema/__tests__/list.test.js.map +1 -0
- package/dist/commands/schema/__tests__/validate.test.js +27 -10
- package/dist/commands/schema/__tests__/validate.test.js.map +1 -1
- package/dist/commands/schema/delete.d.ts +1 -1
- package/dist/commands/schema/delete.js +20 -23
- package/dist/commands/schema/delete.js.map +1 -1
- package/dist/commands/schema/deploy.d.ts +16 -0
- package/dist/commands/schema/deploy.js +98 -0
- package/dist/commands/schema/deploy.js.map +1 -0
- package/dist/commands/schema/list.d.ts +15 -0
- package/dist/commands/schema/list.js +104 -0
- package/dist/commands/schema/list.js.map +1 -0
- package/dist/commands/telemetry/__tests__/disable.test.js +7 -5
- package/dist/commands/telemetry/__tests__/disable.test.js.map +1 -1
- package/dist/commands/telemetry/__tests__/enable.test.js +7 -5
- package/dist/commands/telemetry/__tests__/enable.test.js.map +1 -1
- package/dist/commands/telemetry/__tests__/status.test.js +7 -5
- package/dist/commands/telemetry/__tests__/status.test.js.map +1 -1
- package/dist/commands/tokens/__tests__/add.test.js +55 -40
- package/dist/commands/tokens/__tests__/add.test.js.map +1 -1
- package/dist/commands/tokens/__tests__/delete.test.js +72 -42
- package/dist/commands/tokens/__tests__/delete.test.js.map +1 -1
- package/dist/commands/tokens/__tests__/list.test.js +87 -60
- package/dist/commands/tokens/__tests__/list.test.js.map +1 -1
- package/dist/commands/tokens/add.js +3 -5
- package/dist/commands/tokens/add.js.map +1 -1
- package/dist/commands/users/__tests__/invite.test.js +100 -79
- package/dist/commands/users/__tests__/invite.test.js.map +1 -1
- package/dist/commands/users/__tests__/list.test.js +186 -180
- package/dist/commands/users/__tests__/list.test.js.map +1 -1
- package/dist/commands/users/invite.js +6 -17
- package/dist/commands/users/invite.js.map +1 -1
- package/dist/commands/users/list.js +4 -7
- package/dist/commands/users/list.js.map +1 -1
- package/dist/config/createCliConfig.d.ts +4 -4
- package/dist/services/backup.d.ts +8 -0
- package/dist/services/backup.js +19 -0
- package/dist/services/backup.js.map +1 -1
- package/dist/services/cors.d.ts +23 -0
- package/dist/services/cors.js +38 -0
- package/dist/services/cors.js.map +1 -0
- package/dist/services/graphql.d.ts +7 -0
- package/dist/services/graphql.js +11 -0
- package/dist/services/graphql.js.map +1 -1
- package/dist/services/hooks.d.ts +2 -0
- package/dist/services/hooks.js +19 -0
- package/dist/services/hooks.js.map +1 -1
- package/dist/services/organizations.d.ts +1 -1
- package/dist/services/organizations.js +1 -1
- package/dist/services/organizations.js.map +1 -1
- package/dist/services/projects.d.ts +11 -0
- package/dist/services/projects.js +41 -0
- package/dist/services/projects.js.map +1 -1
- package/dist/services/schemas.d.ts +4 -0
- package/dist/services/schemas.js +40 -0
- package/dist/services/schemas.js.map +1 -0
- package/dist/services/user.d.ts +8 -0
- package/dist/services/user.js +15 -2
- package/dist/services/user.js.map +1 -1
- package/dist/util/__tests__/getCliVersion.test.js +2 -2
- package/dist/util/__tests__/getCliVersion.test.js.map +1 -1
- package/dist/util/errorMessages.d.ts +1 -0
- package/dist/util/errorMessages.js +1 -0
- package/dist/util/errorMessages.js.map +1 -1
- package/dist/util/getCliVersion.js +1 -1
- package/dist/util/getCliVersion.js.map +1 -1
- package/dist/util/readPackageJson.d.ts +1 -15
- package/dist/util/readPackageJson.js +1 -1
- package/dist/util/readPackageJson.js.map +1 -1
- package/dist/util/uniqBy.d.ts +1 -0
- package/dist/util/uniqBy.js +14 -0
- package/dist/util/uniqBy.js.map +1 -0
- package/oclif.manifest.json +172 -27
- package/package.json +27 -28
- package/dist/actions/cors/constants.d.ts +0 -1
- package/dist/actions/cors/constants.js +0 -3
- package/dist/actions/cors/constants.js.map +0 -1
- package/dist/actions/cors/types.d.ts +0 -9
- package/dist/actions/cors/types.js +0 -3
- package/dist/actions/cors/types.js.map +0 -1
- package/dist/actions/schema/__tests__/deleteSchemaAction.test.js +0 -294
- package/dist/actions/schema/__tests__/deleteSchemaAction.test.js.map +0 -1
- package/dist/actions/schema/schemaStoreConstants.d.ts +0 -1
- package/dist/actions/schema/schemaStoreConstants.js +0 -4
- package/dist/actions/schema/schemaStoreConstants.js.map +0 -1
- package/dist/actions/schema/utils/schemaActionHelpers.d.ts +0 -1
- package/dist/actions/schema/utils/schemaActionHelpers.js +0 -5
- package/dist/actions/schema/utils/schemaActionHelpers.js.map +0 -1
- package/dist/actions/schema/utils/schemaApiClient.d.ts +0 -6
- package/dist/actions/schema/utils/schemaApiClient.js +0 -17
- package/dist/actions/schema/utils/schemaApiClient.js.map +0 -1
- package/dist/actions/users/apiVersion.d.ts +0 -6
- package/dist/actions/users/apiVersion.js +0 -7
- package/dist/actions/users/apiVersion.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/commands/__tests__/debug.test.ts"],"sourcesContent":["import {runCommand} from '@oclif/test'\nimport {findProjectRoot, getCliConfig, getCliToken, getConfig} from '@sanity/cli-core'\nimport {mockApi, testCommand} from '@sanity/cli-test'\nimport nock from 'nock'\nimport {afterEach, describe, expect, test, vi} from 'vitest'\n\nimport {findSanityModulesVersions} from '../../actions/versions/findSanityModulesVersions.js'\nimport {Debug} from '../debug.js'\n\n// Mock CLI core functions using relative paths\nvi.mock('../../../../cli-core/src/services/getCliToken.js', () => ({\n getCliToken: vi.fn(),\n}))\n\nvi.mock('../../../../cli-core/src/services/cliUserConfig.js', () => ({\n getConfig: vi.fn(),\n}))\n\nvi.mock('../../../../cli-core/src/config/findProjectRoot.js', () => ({\n findProjectRoot: vi.fn(),\n}))\n\n// Mock the CLI config function like in manage.test.ts\nvi.mock('../../../../cli-core/src/config/cli/getCliConfig.js', () => ({\n getCliConfig: vi.fn(),\n}))\n\n// Mock version-related functions\nvi.mock('../../actions/versions/findSanityModulesVersions.js', () => ({\n findSanityModulesVersions: vi.fn(),\n}))\n\nafterEach(() => {\n vi.clearAllMocks()\n const pending = nock.pendingMocks()\n nock.cleanAll()\n expect(pending, 'pending mocks').toEqual([])\n})\n\ndescribe('#debug', () => {\n test('help text is correct', async () => {\n const {stdout} = await runCommand('debug --help')\n expect(stdout).toMatchInlineSnapshot(`\n \"Provides diagnostic info for Sanity Studio troubleshooting\n\n USAGE\n $ sanity debug [--secrets]\n\n FLAGS\n --secrets Include API keys in output\n\n DESCRIPTION\n Provides diagnostic info for Sanity Studio troubleshooting\n\n EXAMPLES\n $ sanity debug\n\n $ sanity debug --secrets\n\n \"\n `)\n })\n\n test('shows debug information with authentication and config details', async () => {\n // Mock authentication\n vi.mocked(getCliToken).mockResolvedValue('mock-auth-token')\n vi.mocked(getConfig).mockImplementation(async (key: string) => {\n if (key === 'authToken') return 'mock-auth-token'\n if (key === 'telemetryConsent')\n return {\n updatedAt: 1_234_567_890,\n value: {status: 'granted', type: 'explicit'},\n }\n return undefined\n })\n\n // Mock project configuration\n vi.mocked(findProjectRoot).mockResolvedValue({\n directory: '/test/project',\n path: '/test/project/sanity.cli.ts',\n type: 'studio',\n })\n vi.mocked(getCliConfig).mockResolvedValue({\n api: {\n dataset: 'production',\n projectId: 'project123',\n },\n })\n\n // Mock version info with some packages\n vi.mocked(findSanityModulesVersions).mockResolvedValue([\n {\n declared: '^3.0.0',\n installed: '3.0.0',\n isGlobal: false,\n isPinned: false,\n latest: '3.0.0',\n name: 'sanity',\n needsUpdate: false,\n },\n {\n declared: '^3.0.0',\n installed: '3.0.0',\n isGlobal: false,\n isPinned: false,\n latest: '3.1.0',\n name: '@sanity/cli',\n needsUpdate: true,\n },\n ])\n\n const {stdout} = await testCommand(Debug, [])\n\n // Check that basic debug output structure is present\n expect(stdout).toContain('User:')\n expect(stdout).toContain('Authentication:')\n expect(stdout).toContain('<redacted>')\n expect(stdout).toContain('Global config')\n expect(stdout).toContain('Package versions:')\n expect(stdout).toContain('sanity')\n expect(stdout).toContain('3.0.0')\n expect(stdout).toContain('(up to date)')\n expect(stdout).toContain('(latest: 3.1.0)')\n })\n\n test('shows redacted auth token by default', async () => {\n // Mock basic authentication\n vi.mocked(getCliToken).mockResolvedValue('mock-auth-token')\n vi.mocked(getConfig).mockImplementation(async (key: string) => {\n if (key === 'authToken') return 'mock-auth-token'\n return undefined\n })\n\n // Mock minimal project setup\n vi.mocked(findProjectRoot).mockResolvedValue({\n directory: '/test/project',\n path: '/test/project/sanity.cli.ts',\n type: 'studio',\n })\n vi.mocked(getCliConfig).mockResolvedValue({\n api: {\n projectId: 'project123',\n },\n })\n vi.mocked(findSanityModulesVersions).mockResolvedValue([])\n\n const {stdout} = await testCommand(Debug, [])\n\n expect(stdout).toContain('<redacted>')\n expect(stdout).toContain('(run with --secrets to reveal token)')\n expect(stdout).not.toContain('mock-auth-token')\n })\n\n test('shows actual auth token with --secrets flag', async () => {\n // Mock authentication with specific token\n vi.mocked(getCliToken).mockResolvedValue('secret-token-12345')\n vi.mocked(getConfig).mockImplementation(async (key: string) => {\n if (key === 'authToken') return 'secret-token-12345'\n return undefined\n })\n\n // Mock minimal project setup\n vi.mocked(findProjectRoot).mockResolvedValue({\n directory: '/test/project',\n path: '/test/project/sanity.cli.ts',\n type: 'studio',\n })\n vi.mocked(getCliConfig).mockResolvedValue({\n api: {\n projectId: 'project123',\n },\n })\n vi.mocked(findSanityModulesVersions).mockResolvedValue([])\n\n const {stdout} = await testCommand(Debug, ['--secrets'])\n\n expect(stdout).toContain('secret-token-12345')\n expect(stdout).not.toContain('<redacted>')\n expect(stdout).not.toContain('(run with --secrets to reveal token)')\n })\n\n test('handles unauthenticated user', async () => {\n // Mock no authentication\n vi.mocked(getCliToken).mockResolvedValue(undefined)\n vi.mocked(getConfig).mockImplementation(async () => undefined)\n\n const {error} = await testCommand(Debug, [])\n\n // When not authenticated, the command should error trying to get client\n expect(error?.message).toContain('Failed to gather debug information')\n })\n\n test('shows package versions with update information', async () => {\n // Mock basic authentication\n vi.mocked(getCliToken).mockResolvedValue('mock-auth-token')\n vi.mocked(getConfig).mockImplementation(async (key: string) => {\n if (key === 'authToken') return 'mock-auth-token'\n return undefined\n })\n\n // Mock project setup\n vi.mocked(findProjectRoot).mockResolvedValue({\n directory: '/test/project',\n path: '/test/project/sanity.cli.ts',\n type: 'studio',\n })\n vi.mocked(getCliConfig).mockResolvedValue({\n api: {\n projectId: 'project123',\n },\n })\n\n // Mock version info with mixed update statuses\n vi.mocked(findSanityModulesVersions).mockResolvedValue([\n {\n declared: '^3.0.0',\n installed: '3.0.0',\n isGlobal: false,\n isPinned: false,\n latest: '3.0.0',\n name: 'sanity',\n needsUpdate: false,\n },\n {\n declared: '^2.9.0',\n installed: '2.9.0',\n isGlobal: false,\n isPinned: false,\n latest: '3.1.0',\n name: '@sanity/cli',\n needsUpdate: true,\n },\n {\n declared: '^3.0.0',\n installed: undefined,\n isGlobal: false,\n isPinned: false,\n latest: '3.0.0',\n name: '@sanity/types',\n needsUpdate: true,\n },\n ])\n\n const {stdout} = await testCommand(Debug, [])\n\n expect(stdout).toContain('Package versions:')\n expect(stdout).toContain('sanity')\n expect(stdout).toContain('3.0.0')\n expect(stdout).toContain('(up to date)')\n expect(stdout).toContain('(latest: 3.1.0)')\n expect(stdout).toContain('<missing>')\n })\n\n test('handles errors gracefully', async () => {\n vi.mocked(getCliToken).mockRejectedValue(new Error('Auth system unavailable'))\n\n const {error} = await testCommand(Debug, [])\n\n expect(error?.message).toContain('Failed to gather debug information')\n expect(error?.message).toContain('Auth system unavailable')\n })\n\n test('displays user information when user is present', async () => {\n // Mock authentication\n vi.mocked(getCliToken).mockResolvedValue('mock-auth-token')\n vi.mocked(getConfig).mockImplementation(async (key: string) => {\n if (key === 'authToken') return 'mock-auth-token'\n return undefined\n })\n\n // Mock project configuration but no project info from API\n vi.mocked(findProjectRoot).mockResolvedValue({\n directory: '/test/project',\n path: '/test/project/sanity.cli.ts',\n type: 'studio',\n })\n vi.mocked(getCliConfig).mockResolvedValue({\n api: {\n projectId: 'project123',\n },\n })\n vi.mocked(findSanityModulesVersions).mockResolvedValue([])\n\n // Mock the /me API endpoint to return user info\n mockApi({apiVersion: 'v2025-08-06', uri: '/users/me'}).reply(200, {\n email: 'test@example.com',\n id: 'user123',\n name: 'Test User',\n })\n\n // Mock the project API endpoint to return no project (404)\n mockApi({apiVersion: 'v2025-08-06', uri: '/projects/project123'}).reply(404)\n\n const {stdout} = await testCommand(Debug, [])\n\n expect(stdout).toContain('User:')\n expect(stdout).toContain(\"Email: 'test@example.com'\")\n expect(stdout).toContain(\"ID: 'user123'\")\n expect(stdout).toContain(\"Name: 'Test User'\")\n })\n\n test('displays project information when project is present', async () => {\n // Mock authentication\n vi.mocked(getCliToken).mockResolvedValue('mock-auth-token')\n vi.mocked(getConfig).mockImplementation(async (key: string) => {\n if (key === 'authToken') return 'mock-auth-token'\n return undefined\n })\n\n // Mock project configuration\n vi.mocked(findProjectRoot).mockResolvedValue({\n directory: '/test/project',\n path: '/test/project/sanity.cli.ts',\n type: 'studio',\n })\n vi.mocked(getCliConfig).mockResolvedValue({\n api: {\n projectId: 'project123',\n },\n })\n vi.mocked(findSanityModulesVersions).mockResolvedValue([])\n\n // Mock the /me API endpoint to return user info\n mockApi({apiVersion: 'v2025-08-06', uri: '/users/me'}).reply(200, {\n email: 'test@example.com',\n id: 'user123',\n name: 'Test User',\n })\n\n // Mock the project API endpoint to return project info\n mockApi({apiVersion: 'v2025-08-06', uri: '/projects/project123'}).reply(200, {\n displayName: 'Test Project',\n id: 'project123',\n members: [\n {\n id: 'user123',\n roles: [{name: 'administrator'}],\n },\n ],\n studioHost: 'test-project',\n })\n\n const {stdout} = await testCommand(Debug, [])\n\n expect(stdout).toContain('Project:')\n expect(stdout).toContain(\"Display name: 'Test Project'\")\n expect(stdout).toContain(\"ID: 'project123'\")\n expect(stdout).toContain(\"Roles: [ 'administrator' ]\")\n })\n\n test('handles case when no auth token is present', async () => {\n // Mock no authentication\n vi.mocked(getCliToken).mockResolvedValue(undefined)\n vi.mocked(getConfig).mockImplementation(async () => undefined)\n\n // Mock project configuration\n vi.mocked(findProjectRoot).mockResolvedValue({\n directory: '/test/project',\n path: '/test/project/sanity.cli.ts',\n type: 'studio',\n })\n vi.mocked(getCliConfig).mockResolvedValue({\n api: {\n projectId: 'project123',\n },\n })\n vi.mocked(findSanityModulesVersions).mockResolvedValue([])\n\n // Command should fail when no auth token is present since it requires authentication\n const {error} = await testCommand(Debug, [])\n\n expect(error?.message).toContain('Failed to gather debug information')\n })\n\n test('handles case when no project config is present', async () => {\n // Mock authentication\n vi.mocked(getCliToken).mockResolvedValue('mock-auth-token')\n vi.mocked(getConfig).mockImplementation(async (key: string) => {\n if (key === 'authToken') return 'mock-auth-token'\n return undefined\n })\n\n // Mock project configuration with no projectId (invalid config)\n vi.mocked(findProjectRoot).mockResolvedValue({\n directory: '/test/project',\n path: '/test/project/sanity.cli.ts',\n type: 'studio',\n })\n vi.mocked(getCliConfig).mockResolvedValue({\n api: {\n // No projectId - this will cause project config to be invalid\n },\n })\n vi.mocked(findSanityModulesVersions).mockResolvedValue([])\n\n // Mock the /me API endpoint to return user info\n mockApi({apiVersion: 'v2025-08-06', uri: '/users/me'}).reply(200, {\n email: 'test@example.com',\n id: 'user123',\n name: 'Test User',\n })\n\n // No project API mock needed since no valid projectId\n\n const {stdout} = await testCommand(Debug, [])\n\n expect(stdout).toContain('Global config')\n expect(stdout).toContain('Project config')\n expect(stdout).toContain('Missing required \"api.projectId\" key')\n })\n\n test('handles case when no versions are present', async () => {\n // Mock authentication\n vi.mocked(getCliToken).mockResolvedValue('mock-auth-token')\n vi.mocked(getConfig).mockImplementation(async (key: string) => {\n if (key === 'authToken') return 'mock-auth-token'\n return undefined\n })\n\n // Mock project configuration\n vi.mocked(findProjectRoot).mockResolvedValue({\n directory: '/test/project',\n path: '/test/project/sanity.cli.ts',\n type: 'studio',\n })\n vi.mocked(getCliConfig).mockResolvedValue({\n api: {\n projectId: 'project123',\n },\n })\n // Mock findSanityModulesVersions to return empty array (no versions)\n vi.mocked(findSanityModulesVersions).mockResolvedValue([])\n\n // Mock the /me API endpoint to return user info\n mockApi({apiVersion: 'v2025-08-06', uri: '/users/me'}).reply(200, {\n email: 'test@example.com',\n id: 'user123',\n name: 'Test User',\n })\n\n // Mock the project API endpoint to return project info\n mockApi({apiVersion: 'v2025-08-06', uri: '/projects/project123'}).reply(200, {\n displayName: 'Test Project',\n id: 'project123',\n members: [\n {\n id: 'user123',\n roles: [{name: 'administrator'}],\n },\n ],\n studioHost: 'test-project',\n })\n\n const {stdout} = await testCommand(Debug, [])\n\n expect(stdout).toContain('Global config')\n expect(stdout).toContain('Package versions:')\n // Should show the heading but no packages since the array is empty\n })\n\n test('handles error case with unknown error type', async () => {\n // Mock project configuration\n vi.mocked(findProjectRoot).mockResolvedValue({\n directory: '/test/project',\n path: '/test/project/sanity.cli.ts',\n type: 'studio',\n })\n vi.mocked(getCliConfig).mockResolvedValue({\n api: {\n projectId: 'project123',\n },\n })\n\n // Mock getCliToken to throw a non-Error object to trigger unknown error path\n vi.mocked(getCliToken).mockRejectedValue('string error')\n\n const {error} = await testCommand(Debug, [])\n\n expect(error).toBeTruthy()\n expect(error?.message).toContain('Failed to gather debug information')\n expect(error?.message).toContain('Unknown error')\n })\n\n test('handles global config error gracefully', async () => {\n // Mock authentication\n vi.mocked(getCliToken).mockResolvedValue('mock-auth-token')\n // Mock getConfig to throw an error\n vi.mocked(getConfig).mockRejectedValue(new Error('Config access error'))\n\n // Mock project configuration\n vi.mocked(findProjectRoot).mockResolvedValue({\n directory: '/test/project',\n path: '/test/project/sanity.cli.ts',\n type: 'studio',\n })\n vi.mocked(getCliConfig).mockResolvedValue({\n api: {\n projectId: 'project123',\n },\n })\n vi.mocked(findSanityModulesVersions).mockResolvedValue([])\n\n // Mock the /me API endpoint to return user info\n mockApi({apiVersion: 'v2025-08-06', uri: '/users/me'}).reply(200, {\n email: 'test@example.com',\n id: 'user123',\n name: 'Test User',\n })\n\n // Mock the project API endpoint to return project info\n mockApi({apiVersion: 'v2025-08-06', uri: '/projects/project123'}).reply(200, {\n displayName: 'Test Project',\n id: 'project123',\n members: [],\n studioHost: 'test-project',\n })\n\n const {stdout} = await testCommand(Debug, [])\n\n // Should continue to work despite global config error\n expect(stdout).toContain('Global config')\n expect(stdout).toContain('User:')\n expect(stdout).toContain('Project:')\n })\n\n test('handles user API error and shows error message', async () => {\n // Mock authentication\n vi.mocked(getCliToken).mockResolvedValue('mock-auth-token')\n vi.mocked(getConfig).mockImplementation(async (key: string) => {\n if (key === 'authToken') return 'mock-auth-token'\n return undefined\n })\n\n // Mock project configuration\n vi.mocked(findProjectRoot).mockResolvedValue({\n directory: '/test/project',\n path: '/test/project/sanity.cli.ts',\n type: 'studio',\n })\n vi.mocked(getCliConfig).mockResolvedValue({\n api: {\n projectId: 'project123',\n },\n })\n vi.mocked(findSanityModulesVersions).mockResolvedValue([])\n\n // Mock the /me API endpoint to return an error\n mockApi({apiVersion: 'v2025-08-06', uri: '/users/me'}).reply(500, {\n error: 'Internal server error',\n })\n\n const {stdout} = await testCommand(Debug, [])\n\n expect(stdout).toContain('User:')\n // Should show error message in red\n expect(stdout).toMatch(\n /Request failed with status code 500|Failed to fetch user info|Internal server error/,\n )\n })\n\n test('handles project API error and continues gracefully', async () => {\n // Mock authentication\n vi.mocked(getCliToken).mockResolvedValue('mock-auth-token')\n vi.mocked(getConfig).mockImplementation(async (key: string) => {\n if (key === 'authToken') return 'mock-auth-token'\n return undefined\n })\n\n // Mock project configuration\n vi.mocked(findProjectRoot).mockResolvedValue({\n directory: '/test/project',\n path: '/test/project/sanity.cli.ts',\n type: 'studio',\n })\n vi.mocked(getCliConfig).mockResolvedValue({\n api: {\n projectId: 'project123',\n },\n })\n vi.mocked(findSanityModulesVersions).mockResolvedValue([])\n\n // Mock the /me API endpoint to return user info\n mockApi({apiVersion: 'v2025-08-06', uri: '/users/me'}).reply(200, {\n email: 'test@example.com',\n id: 'user123',\n name: 'Test User',\n })\n\n // Mock the project API endpoint to return an error\n mockApi({apiVersion: 'v2025-08-06', uri: '/projects/project123'}).reply(404, {\n error: 'Project not found',\n })\n\n const {stdout} = await testCommand(Debug, [])\n\n expect(stdout).toContain('User:')\n expect(stdout).toContain(\"Email: 'test@example.com'\")\n // Should not contain Project section since it failed to load\n expect(stdout).not.toContain('Project:')\n })\n\n test('handles project with null response and shows error', async () => {\n // Mock authentication\n vi.mocked(getCliToken).mockResolvedValue('mock-auth-token')\n vi.mocked(getConfig).mockImplementation(async (key: string) => {\n if (key === 'authToken') return 'mock-auth-token'\n return undefined\n })\n\n // Mock project configuration\n vi.mocked(findProjectRoot).mockResolvedValue({\n directory: '/test/project',\n path: '/test/project/sanity.cli.ts',\n type: 'studio',\n })\n vi.mocked(getCliConfig).mockResolvedValue({\n api: {\n projectId: 'project123',\n },\n })\n vi.mocked(findSanityModulesVersions).mockResolvedValue([])\n\n // Mock the /me API endpoint to return user info\n mockApi({apiVersion: 'v2025-08-06', uri: '/users/me'}).reply(200, {\n email: 'test@example.com',\n id: 'user123',\n name: 'Test User',\n })\n\n // Mock the project API endpoint to return null\n mockApi({apiVersion: 'v2025-08-06', uri: '/projects/project123'}).reply(200, () => {\n return null\n })\n\n const {stdout} = await testCommand(Debug, [])\n\n expect(stdout).toContain('User:')\n expect(stdout).toContain(\"Email: 'test@example.com'\")\n // Project error is handled internally but not displayed to user\n expect(stdout).not.toContain('Project:')\n })\n\n test('handles project with no members array gracefully', async () => {\n // Mock authentication\n vi.mocked(getCliToken).mockResolvedValue('mock-auth-token')\n vi.mocked(getConfig).mockImplementation(async (key: string) => {\n if (key === 'authToken') return 'mock-auth-token'\n return undefined\n })\n\n // Mock project configuration\n vi.mocked(findProjectRoot).mockResolvedValue({\n directory: '/test/project',\n path: '/test/project/sanity.cli.ts',\n type: 'studio',\n })\n vi.mocked(getCliConfig).mockResolvedValue({\n api: {\n projectId: 'project123',\n },\n })\n vi.mocked(findSanityModulesVersions).mockResolvedValue([])\n\n // Mock the /me API endpoint to return user info\n mockApi({apiVersion: 'v2025-08-06', uri: '/users/me'}).reply(200, {\n email: 'test@example.com',\n id: 'user123',\n name: 'Test User',\n })\n\n // Mock the project API endpoint to return project with no members\n mockApi({apiVersion: 'v2025-08-06', uri: '/projects/project123'}).reply(200, {\n displayName: 'Test Project',\n id: 'project123',\n studioHost: 'test-project',\n // No members array\n })\n\n const {stdout} = await testCommand(Debug, [])\n\n expect(stdout).toContain('Project:')\n expect(stdout).toContain(\"Display name: 'Test Project'\")\n expect(stdout).toContain(\"Roles: [ '<none>' ]\")\n })\n\n test('handles project member with no roles gracefully', async () => {\n // Mock authentication\n vi.mocked(getCliToken).mockResolvedValue('mock-auth-token')\n vi.mocked(getConfig).mockImplementation(async (key: string) => {\n if (key === 'authToken') return 'mock-auth-token'\n return undefined\n })\n\n // Mock project configuration\n vi.mocked(findProjectRoot).mockResolvedValue({\n directory: '/test/project',\n path: '/test/project/sanity.cli.ts',\n type: 'studio',\n })\n vi.mocked(getCliConfig).mockResolvedValue({\n api: {\n projectId: 'project123',\n },\n })\n vi.mocked(findSanityModulesVersions).mockResolvedValue([])\n\n // Mock the /me API endpoint to return user info\n mockApi({apiVersion: 'v2025-08-06', uri: '/users/me'}).reply(200, {\n email: 'test@example.com',\n id: 'user123',\n name: 'Test User',\n })\n\n // Mock the project API endpoint to return project with member but no roles\n mockApi({apiVersion: 'v2025-08-06', uri: '/projects/project123'}).reply(200, {\n displayName: 'Test Project',\n id: 'project123',\n members: [\n {\n id: 'user123',\n // No roles property\n },\n ],\n studioHost: 'test-project',\n })\n\n const {stdout} = await testCommand(Debug, [])\n\n expect(stdout).toContain('Project:')\n expect(stdout).toContain(\"Display name: 'Test Project'\")\n expect(stdout).toContain(\"Roles: [ '<none>' ]\")\n })\n})\n"],"names":["runCommand","findProjectRoot","getCliConfig","getCliToken","getConfig","mockApi","testCommand","nock","afterEach","describe","expect","test","vi","findSanityModulesVersions","Debug","mock","fn","clearAllMocks","pending","pendingMocks","cleanAll","toEqual","stdout","toMatchInlineSnapshot","mocked","mockResolvedValue","mockImplementation","key","updatedAt","value","status","type","undefined","directory","path","api","dataset","projectId","declared","installed","isGlobal","isPinned","latest","name","needsUpdate","toContain","not","error","message","mockRejectedValue","Error","apiVersion","uri","reply","email","id","displayName","members","roles","studioHost","toBeTruthy","toMatch"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/commands/__tests__/debug.test.ts"],"sourcesContent":["import {runCommand} from '@oclif/test'\nimport {getCliToken, getConfig} from '@sanity/cli-core'\nimport {mockApi, testCommand} from '@sanity/cli-test'\nimport nock from 'nock'\nimport {afterEach, describe, expect, test, vi} from 'vitest'\n\nimport {findSanityModulesVersions} from '../../actions/versions/findSanityModulesVersions.js'\nimport {Debug} from '../debug.js'\n\nvi.mock('@sanity/cli-core', async () => {\n const actual = await vi.importActual<typeof import('@sanity/cli-core')>('@sanity/cli-core')\n return {\n ...actual,\n getCliToken: vi.fn(),\n getConfig: vi.fn(),\n }\n})\n\nvi.mock('../../actions/versions/findSanityModulesVersions.js', () => ({\n findSanityModulesVersions: vi.fn(),\n}))\n\nconst defaultProjectRoot = {\n directory: '/test/project',\n path: '/test/project/sanity.cli.ts',\n type: 'studio' as const,\n}\n\nconst defaultCliConfig = {\n api: {\n projectId: 'project123',\n },\n}\n\nconst defaultMocks = {\n cliConfig: defaultCliConfig,\n projectRoot: defaultProjectRoot,\n token: 'mock-auth-token',\n}\n\nafterEach(() => {\n vi.clearAllMocks()\n const pending = nock.pendingMocks()\n nock.cleanAll()\n expect(pending, 'pending mocks').toEqual([])\n})\n\ndescribe('#debug', () => {\n test('help text is correct', async () => {\n const {stdout} = await runCommand('debug --help')\n expect(stdout).toMatchInlineSnapshot(`\n \"Provides diagnostic info for Sanity Studio troubleshooting\n\n USAGE\n $ sanity debug [--secrets]\n\n FLAGS\n --secrets Include API keys in output\n\n DESCRIPTION\n Provides diagnostic info for Sanity Studio troubleshooting\n\n EXAMPLES\n $ sanity debug\n\n $ sanity debug --secrets\n\n \"\n `)\n })\n\n test('shows debug information with authentication and config details', async () => {\n vi.mocked(getCliToken).mockResolvedValue('mock-auth-token')\n vi.mocked(getConfig).mockImplementation(async (key: string) => {\n if (key === 'authToken') return 'mock-auth-token'\n if (key === 'telemetryConsent')\n return {\n updatedAt: 1_234_567_890,\n value: {status: 'granted', type: 'explicit'},\n }\n return undefined\n })\n\n vi.mocked(findSanityModulesVersions).mockResolvedValue([\n {\n declared: '^3.0.0',\n installed: '3.0.0',\n isGlobal: false,\n isPinned: false,\n latest: '3.0.0',\n name: 'sanity',\n needsUpdate: false,\n },\n {\n declared: '^3.0.0',\n installed: '3.0.0',\n isGlobal: false,\n isPinned: false,\n latest: '3.1.0',\n name: '@sanity/cli',\n needsUpdate: true,\n },\n ])\n\n const {stdout} = await testCommand(Debug, [], {\n mocks: {\n ...defaultMocks,\n cliConfig: {\n api: {\n dataset: 'production',\n projectId: 'project123',\n },\n },\n },\n })\n\n expect(stdout).toContain('User:')\n expect(stdout).toContain('Authentication:')\n expect(stdout).toContain('<redacted>')\n expect(stdout).toContain('Global config')\n expect(stdout).toContain('Package versions:')\n expect(stdout).toContain('sanity')\n expect(stdout).toContain('3.0.0')\n expect(stdout).toContain('(up to date)')\n expect(stdout).toContain('(latest: 3.1.0)')\n })\n\n test('shows redacted auth token by default', async () => {\n vi.mocked(getCliToken).mockResolvedValue('mock-auth-token')\n vi.mocked(getConfig).mockImplementation(async (key: string) => {\n if (key === 'authToken') return 'mock-auth-token'\n return undefined\n })\n vi.mocked(findSanityModulesVersions).mockResolvedValue([])\n\n const {stdout} = await testCommand(Debug, [], {mocks: defaultMocks})\n\n expect(stdout).toContain('<redacted>')\n expect(stdout).toContain('(run with --secrets to reveal token)')\n expect(stdout).not.toContain('mock-auth-token')\n })\n\n test('shows actual auth token with --secrets flag', async () => {\n vi.mocked(getCliToken).mockResolvedValue('secret-token-12345')\n vi.mocked(getConfig).mockImplementation(async (key: string) => {\n if (key === 'authToken') return 'secret-token-12345'\n return undefined\n })\n vi.mocked(findSanityModulesVersions).mockResolvedValue([])\n\n const {stdout} = await testCommand(Debug, ['--secrets'], {\n mocks: {\n ...defaultMocks,\n token: 'secret-token-12345',\n },\n })\n\n expect(stdout).toContain('secret-token-12345')\n expect(stdout).not.toContain('<redacted>')\n expect(stdout).not.toContain('(run with --secrets to reveal token)')\n })\n\n test('handles unauthenticated user', async () => {\n vi.mocked(getCliToken).mockResolvedValue(undefined)\n vi.mocked(getConfig).mockImplementation(async () => undefined)\n vi.mocked(findSanityModulesVersions).mockResolvedValue([])\n\n const {error, stdout} = await testCommand(Debug, [], {\n mocks: {\n ...defaultMocks,\n token: undefined,\n },\n })\n\n // When not authenticated, either the command errors or shows \"Not logged in\" message\n if (error) {\n expect(error.message).toContain('Failed to gather debug information')\n } else {\n expect(stdout).toContain('Not logged in')\n }\n })\n\n test('shows package versions with update information', async () => {\n vi.mocked(getCliToken).mockResolvedValue('mock-auth-token')\n vi.mocked(getConfig).mockImplementation(async (key: string) => {\n if (key === 'authToken') return 'mock-auth-token'\n return undefined\n })\n\n vi.mocked(findSanityModulesVersions).mockResolvedValue([\n {\n declared: '^3.0.0',\n installed: '3.0.0',\n isGlobal: false,\n isPinned: false,\n latest: '3.0.0',\n name: 'sanity',\n needsUpdate: false,\n },\n {\n declared: '^2.9.0',\n installed: '2.9.0',\n isGlobal: false,\n isPinned: false,\n latest: '3.1.0',\n name: '@sanity/cli',\n needsUpdate: true,\n },\n {\n declared: '^3.0.0',\n installed: undefined,\n isGlobal: false,\n isPinned: false,\n latest: '3.0.0',\n name: '@sanity/types',\n needsUpdate: true,\n },\n ])\n\n const {stdout} = await testCommand(Debug, [], {mocks: defaultMocks})\n\n expect(stdout).toContain('Package versions:')\n expect(stdout).toContain('sanity')\n expect(stdout).toContain('3.0.0')\n expect(stdout).toContain('(up to date)')\n expect(stdout).toContain('(latest: 3.1.0)')\n expect(stdout).toContain('<missing>')\n })\n\n test('handles errors gracefully', async () => {\n vi.mocked(getCliToken).mockRejectedValue(new Error('Auth system unavailable'))\n\n const {error} = await testCommand(Debug, [], {mocks: defaultMocks})\n\n expect(error?.message).toContain('Failed to gather debug information')\n expect(error?.message).toContain('Auth system unavailable')\n })\n\n test('displays user information when user is present', async () => {\n // Mock authentication\n vi.mocked(getCliToken).mockResolvedValue('mock-auth-token')\n vi.mocked(getConfig).mockImplementation(async (key: string) => {\n if (key === 'authToken') return 'mock-auth-token'\n return undefined\n })\n vi.mocked(findSanityModulesVersions).mockResolvedValue([])\n\n // Mock the /me API endpoint to return user info\n mockApi({apiVersion: 'v2025-08-06', uri: '/users/me'}).reply(200, {\n email: 'test@example.com',\n id: 'user123',\n name: 'Test User',\n })\n\n // Mock the project API endpoint to return no project (404)\n mockApi({apiVersion: 'v2025-08-06', uri: '/projects/project123'}).reply(404)\n\n const {stdout} = await testCommand(Debug, [], {mocks: defaultMocks})\n\n expect(stdout).toContain('User:')\n expect(stdout).toContain(\"Email: 'test@example.com'\")\n expect(stdout).toContain(\"ID: 'user123'\")\n expect(stdout).toContain(\"Name: 'Test User'\")\n })\n\n test('displays project information when project is present', async () => {\n // Mock authentication\n vi.mocked(getCliToken).mockResolvedValue('mock-auth-token')\n vi.mocked(getConfig).mockImplementation(async (key: string) => {\n if (key === 'authToken') return 'mock-auth-token'\n return undefined\n })\n vi.mocked(findSanityModulesVersions).mockResolvedValue([])\n\n // Mock the /me API endpoint to return user info\n mockApi({apiVersion: 'v2025-08-06', uri: '/users/me'}).reply(200, {\n email: 'test@example.com',\n id: 'user123',\n name: 'Test User',\n })\n\n // Mock the project API endpoint to return project info\n mockApi({apiVersion: 'v2025-08-06', uri: '/projects/project123'}).reply(200, {\n displayName: 'Test Project',\n id: 'project123',\n members: [\n {\n id: 'user123',\n roles: [{name: 'administrator'}],\n },\n ],\n studioHost: 'test-project',\n })\n\n const {stdout} = await testCommand(Debug, [], {mocks: defaultMocks})\n\n expect(stdout).toContain('Project:')\n expect(stdout).toContain(\"Display name: 'Test Project'\")\n expect(stdout).toContain(\"ID: 'project123'\")\n expect(stdout).toContain(\"Roles: [ 'administrator' ]\")\n })\n\n test('handles case when no auth token is present', async () => {\n // Mock no authentication\n vi.mocked(getCliToken).mockResolvedValue(undefined)\n vi.mocked(getConfig).mockImplementation(async () => undefined)\n vi.mocked(findSanityModulesVersions).mockResolvedValue([])\n\n // Command should fail when no auth token is present since it requires authentication\n const {error, stdout} = await testCommand(Debug, [], {\n mocks: {\n ...defaultMocks,\n token: undefined,\n },\n })\n\n // When not authenticated, either the command errors or shows \"Not logged in\" message\n if (error) {\n expect(error.message).toContain('Failed to gather debug information')\n } else {\n expect(stdout).toContain('Not logged in')\n }\n })\n\n test('handles case when no project config is present', async () => {\n // Mock authentication\n vi.mocked(getCliToken).mockResolvedValue('mock-auth-token')\n vi.mocked(getConfig).mockImplementation(async (key: string) => {\n if (key === 'authToken') return 'mock-auth-token'\n return undefined\n })\n vi.mocked(findSanityModulesVersions).mockResolvedValue([])\n\n // Mock the /me API endpoint to return user info\n mockApi({apiVersion: 'v2025-08-06', uri: '/users/me'}).reply(200, {\n email: 'test@example.com',\n id: 'user123',\n name: 'Test User',\n })\n\n // No project API mock needed since no valid projectId\n\n const {stdout} = await testCommand(Debug, [], {\n mocks: {\n ...defaultMocks,\n cliConfig: {\n api: {\n // No projectId - this will cause project config to be invalid\n },\n },\n },\n })\n\n expect(stdout).toContain('Global config')\n expect(stdout).toContain('Project config')\n expect(stdout).toContain('Missing required \"api.projectId\" key')\n })\n\n test('handles case when no versions are present', async () => {\n // Mock authentication\n vi.mocked(getCliToken).mockResolvedValue('mock-auth-token')\n vi.mocked(getConfig).mockImplementation(async (key: string) => {\n if (key === 'authToken') return 'mock-auth-token'\n return undefined\n })\n // Mock findSanityModulesVersions to return empty array (no versions)\n vi.mocked(findSanityModulesVersions).mockResolvedValue([])\n\n // Mock the /me API endpoint to return user info\n mockApi({apiVersion: 'v2025-08-06', uri: '/users/me'}).reply(200, {\n email: 'test@example.com',\n id: 'user123',\n name: 'Test User',\n })\n\n // Mock the project API endpoint to return project info\n mockApi({apiVersion: 'v2025-08-06', uri: '/projects/project123'}).reply(200, {\n displayName: 'Test Project',\n id: 'project123',\n members: [\n {\n id: 'user123',\n roles: [{name: 'administrator'}],\n },\n ],\n studioHost: 'test-project',\n })\n\n const {stdout} = await testCommand(Debug, [], {mocks: defaultMocks})\n\n expect(stdout).toContain('Global config')\n expect(stdout).toContain('Package versions:')\n // Should show the heading but no packages since the array is empty\n })\n\n test('handles error case with unknown error type', async () => {\n // Mock getCliToken to throw a non-Error object to trigger unknown error path\n vi.mocked(getCliToken).mockRejectedValue('string error')\n\n const {error} = await testCommand(Debug, [], {mocks: defaultMocks})\n\n expect(error).toBeTruthy()\n expect(error?.message).toContain('Failed to gather debug information')\n expect(error?.message).toContain('Unknown error')\n })\n\n test('handles global config error gracefully', async () => {\n // Mock authentication\n vi.mocked(getCliToken).mockResolvedValue('mock-auth-token')\n // Mock getConfig to throw an error\n vi.mocked(getConfig).mockRejectedValue(new Error('Config access error'))\n vi.mocked(findSanityModulesVersions).mockResolvedValue([])\n\n // Mock the /me API endpoint to return user info\n mockApi({apiVersion: 'v2025-08-06', uri: '/users/me'}).reply(200, {\n email: 'test@example.com',\n id: 'user123',\n name: 'Test User',\n })\n\n // Mock the project API endpoint to return project info\n mockApi({apiVersion: 'v2025-08-06', uri: '/projects/project123'}).reply(200, {\n displayName: 'Test Project',\n id: 'project123',\n members: [],\n studioHost: 'test-project',\n })\n\n const {stdout} = await testCommand(Debug, [], {mocks: defaultMocks})\n\n // Should continue to work despite global config error\n expect(stdout).toContain('Global config')\n expect(stdout).toContain('User:')\n expect(stdout).toContain('Project:')\n })\n\n test('handles user API error and shows error message', async () => {\n // Mock authentication\n vi.mocked(getCliToken).mockResolvedValue('mock-auth-token')\n vi.mocked(getConfig).mockImplementation(async (key: string) => {\n if (key === 'authToken') return 'mock-auth-token'\n return undefined\n })\n vi.mocked(findSanityModulesVersions).mockResolvedValue([])\n\n // Mock the /me API endpoint to return an error\n mockApi({apiVersion: 'v2025-08-06', uri: '/users/me'}).reply(500, {\n error: 'Internal server error',\n })\n\n const {stdout} = await testCommand(Debug, [], {mocks: defaultMocks})\n\n expect(stdout).toContain('User:')\n // Should show error message in red\n expect(stdout).toMatch(\n /Request failed with status code 500|Failed to fetch user info|Internal server error/,\n )\n })\n\n test('handles project API error and continues gracefully', async () => {\n // Mock authentication\n vi.mocked(getCliToken).mockResolvedValue('mock-auth-token')\n vi.mocked(getConfig).mockImplementation(async (key: string) => {\n if (key === 'authToken') return 'mock-auth-token'\n return undefined\n })\n vi.mocked(findSanityModulesVersions).mockResolvedValue([])\n\n // Mock the /me API endpoint to return user info\n mockApi({apiVersion: 'v2025-08-06', uri: '/users/me'}).reply(200, {\n email: 'test@example.com',\n id: 'user123',\n name: 'Test User',\n })\n\n // Mock the project API endpoint to return an error\n mockApi({apiVersion: 'v2025-08-06', uri: '/projects/project123'}).reply(404, {\n error: 'Project not found',\n })\n\n const {stdout} = await testCommand(Debug, [], {mocks: defaultMocks})\n\n expect(stdout).toContain('User:')\n expect(stdout).toContain(\"Email: 'test@example.com'\")\n // Should not contain Project section since it failed to load\n expect(stdout).not.toContain('Project:')\n })\n\n test('handles project with null response and shows error', async () => {\n // Mock authentication\n vi.mocked(getCliToken).mockResolvedValue('mock-auth-token')\n vi.mocked(getConfig).mockImplementation(async (key: string) => {\n if (key === 'authToken') return 'mock-auth-token'\n return undefined\n })\n vi.mocked(findSanityModulesVersions).mockResolvedValue([])\n\n // Mock the /me API endpoint to return user info\n mockApi({apiVersion: 'v2025-08-06', uri: '/users/me'}).reply(200, {\n email: 'test@example.com',\n id: 'user123',\n name: 'Test User',\n })\n\n // Mock the project API endpoint to return null\n mockApi({apiVersion: 'v2025-08-06', uri: '/projects/project123'}).reply(200, () => {\n return null\n })\n\n const {stdout} = await testCommand(Debug, [], {mocks: defaultMocks})\n\n expect(stdout).toContain('User:')\n expect(stdout).toContain(\"Email: 'test@example.com'\")\n // Project error is handled internally but not displayed to user\n expect(stdout).not.toContain('Project:')\n })\n\n test('handles project with no members array gracefully', async () => {\n // Mock authentication\n vi.mocked(getCliToken).mockResolvedValue('mock-auth-token')\n vi.mocked(getConfig).mockImplementation(async (key: string) => {\n if (key === 'authToken') return 'mock-auth-token'\n return undefined\n })\n vi.mocked(findSanityModulesVersions).mockResolvedValue([])\n\n // Mock the /me API endpoint to return user info\n mockApi({apiVersion: 'v2025-08-06', uri: '/users/me'}).reply(200, {\n email: 'test@example.com',\n id: 'user123',\n name: 'Test User',\n })\n\n // Mock the project API endpoint to return project with no members\n mockApi({apiVersion: 'v2025-08-06', uri: '/projects/project123'}).reply(200, {\n displayName: 'Test Project',\n id: 'project123',\n studioHost: 'test-project',\n // No members array\n })\n\n const {stdout} = await testCommand(Debug, [], {mocks: defaultMocks})\n\n expect(stdout).toContain('Project:')\n expect(stdout).toContain(\"Display name: 'Test Project'\")\n expect(stdout).toContain(\"Roles: [ '<none>' ]\")\n })\n\n test('handles project member with no roles gracefully', async () => {\n // Mock authentication\n vi.mocked(getCliToken).mockResolvedValue('mock-auth-token')\n vi.mocked(getConfig).mockImplementation(async (key: string) => {\n if (key === 'authToken') return 'mock-auth-token'\n return undefined\n })\n vi.mocked(findSanityModulesVersions).mockResolvedValue([])\n\n // Mock the /me API endpoint to return user info\n mockApi({apiVersion: 'v2025-08-06', uri: '/users/me'}).reply(200, {\n email: 'test@example.com',\n id: 'user123',\n name: 'Test User',\n })\n\n // Mock the project API endpoint to return project with member but no roles\n mockApi({apiVersion: 'v2025-08-06', uri: '/projects/project123'}).reply(200, {\n displayName: 'Test Project',\n id: 'project123',\n members: [\n {\n id: 'user123',\n // No roles property\n },\n ],\n studioHost: 'test-project',\n })\n\n const {stdout} = await testCommand(Debug, [], {mocks: defaultMocks})\n\n expect(stdout).toContain('Project:')\n expect(stdout).toContain(\"Display name: 'Test Project'\")\n expect(stdout).toContain(\"Roles: [ '<none>' ]\")\n })\n})\n"],"names":["runCommand","getCliToken","getConfig","mockApi","testCommand","nock","afterEach","describe","expect","test","vi","findSanityModulesVersions","Debug","mock","actual","importActual","fn","defaultProjectRoot","directory","path","type","defaultCliConfig","api","projectId","defaultMocks","cliConfig","projectRoot","token","clearAllMocks","pending","pendingMocks","cleanAll","toEqual","stdout","toMatchInlineSnapshot","mocked","mockResolvedValue","mockImplementation","key","updatedAt","value","status","undefined","declared","installed","isGlobal","isPinned","latest","name","needsUpdate","mocks","dataset","toContain","not","error","message","mockRejectedValue","Error","apiVersion","uri","reply","email","id","displayName","members","roles","studioHost","toBeTruthy","toMatch"],"mappings":"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"}
|