import { describe, expect, test } from 'vitest' import { getGHExample } from '../components/get-rest-code-samples' import type { Operation, CodeSample } from '../components/types' import { type VersionItem } from '@/frame/components/context/MainContext' describe('getGHExample - GitHub CLI code generation', () => { test('handles nested conditions object correctly', () => { const operation: Operation = { serverUrl: 'https://api.github.com', verb: 'post', requestPath: '/orgs/{org}/rulesets', title: 'Create an organization repository ruleset', descriptionHTML: '
Creates a repository ruleset.
', previews: [], statusCodes: [], bodyParameters: [], category: 'orgs', subcategory: 'rules', parameters: [ { name: 'org', in: 'path', required: true, description: 'The organization name', schema: { type: 'string' }, }, ], codeExamples: [], progAccess: { permissions: [], userToServerRest: true, serverToServer: true, fineGrainedPat: true, }, } const codeSample: CodeSample = { key: 'default', request: { contentType: 'application/json', description: 'Example', acceptHeader: 'application/vnd.github+json', bodyParameters: { name: 'super cool ruleset', target: 'branch', enforcement: 'active', bypass_actors: [ { actor_id: '234', actor_type: 'Team', bypass_mode: 'always', }, ], conditions: { ref_name: { include: ['refs/heads/main', 'refs/heads/master'], exclude: ['refs/heads/dev*'], }, repository_name: { include: ['important_repository', 'another_important_repository'], exclude: ['unimportant_repository'], protected: 'true', }, }, rules: [ { type: 'commit_author_email_pattern', parameters: { operator: 'contains', pattern: '@github.com$', }, }, ], } as any, parameters: { org: 'ORG', }, }, response: { statusCode: '201', contentType: 'application/json', description: 'Response', example: {}, }, } const currentVersion = 'fpt' const allVersions: RecordTest operation
', previews: [], statusCodes: [], bodyParameters: [], category: 'test', subcategory: 'test', parameters: [], codeExamples: [], progAccess: { permissions: [], userToServerRest: true, serverToServer: true, fineGrainedPat: true, }, } const codeSample: CodeSample = { key: 'default', request: { contentType: 'application/json', description: 'Example', acceptHeader: 'application/vnd.github+json', bodyParameters: { config: { enabled: 'true', settings: { timeout: '30', }, }, } as any, parameters: {}, }, response: { statusCode: '200', contentType: 'application/json', description: 'Response', example: {}, }, } const currentVersion = 'fpt' const allVersions: RecordTest operation
', previews: [], statusCodes: [], bodyParameters: [], category: 'test', subcategory: 'test', parameters: [], codeExamples: [], progAccess: { permissions: [], userToServerRest: true, serverToServer: true, fineGrainedPat: true, }, } const codeSample: CodeSample = { key: 'default', request: { contentType: 'application/json', description: 'Example', acceptHeader: 'application/vnd.github+json', bodyParameters: { tags: ['tag1', 'tag2', 'tag3'], }, parameters: {}, }, response: { statusCode: '200', contentType: 'application/json', description: 'Response', example: {}, }, } const currentVersion = 'fpt' const allVersions: Record