2025-11-16 16:45:39 -05:00

196 lines
4.8 KiB
TypeScript

describe('API Map', () => {
it('should return object representing all resources in JSON format', async () => {
const keys = [
'Agents',
'AlertManagement',
'ApplicationAppearance',
'ApplicationPlanLimits',
'Applications',
'ApplicationSettings',
'ApplicationStatistics',
'AuditEvents',
'Avatar',
'BroadcastMessages',
'Composer',
'Conan',
'DashboardAnnotations',
'Debian',
'DependencyProxy',
'DeployKeys',
'DeployTokens',
'DockerfileTemplates',
'Events',
'Experiments',
'GeoNodes',
'GitignoreTemplates',
'GitLabCIYMLTemplates',
'Import',
'InstanceLevelCICDVariables',
'Keys',
'License',
'LicenseTemplates',
'Lint',
'Markdown',
'Maven',
'Metadata',
'Migrations',
'Namespaces',
'NotificationSettings',
'NPM',
'NuGet',
'PersonalAccessTokens',
'PyPI',
'RubyGems',
'Search',
'ServiceData',
'SidekiqMetrics',
'SidekiqQueues',
'SnippetRepositoryStorageMoves',
'Snippets',
'Suggestions',
'SystemHooks',
'TodoLists',
'Topics',
'Branches',
'CommitDiscussions',
'Commits',
'ContainerRegistry',
'Deployments',
'Environments',
'ErrorTrackingClientKeys',
'ErrorTrackingSettings',
'ExternalStatusChecks',
'FeatureFlags',
'FeatureFlagUserLists',
'FreezePeriods',
'GitlabPages',
'GoProxy',
'Helm',
'Integrations',
'IssueAwardEmojis',
'IssueDiscussions',
'IssueIterationEvents',
'IssueLabelEvents',
'IssueLinks',
'IssueMilestoneEvents',
'IssueNoteAwardEmojis',
'IssueNotes',
'Issues',
'IssuesStatistics',
'IssueStateEvents',
'IssueWeightEvents',
'JobArtifacts',
'Jobs',
'MergeRequestApprovals',
'MergeRequestAwardEmojis',
'MergeRequestContextCommits',
'MergeRequestDiscussions',
'MergeRequestLabelEvents',
'MergeRequestMilestoneEvents',
'MergeRequestDraftNotes',
'MergeRequestNotes',
'MergeRequestNoteAwardEmojis',
'MergeRequests',
'MergeTrains',
'PackageRegistry',
'Packages',
'PagesDomains',
'Pipelines',
'PipelineSchedules',
'PipelineScheduleVariables',
'PipelineTriggerTokens',
'ProductAnalytics',
'ProjectAccessRequests',
'ProjectAccessTokens',
'ProjectAliases',
'ProjectBadges',
'ProjectCustomAttributes',
'ProjectDORA4Metrics',
'ProjectHooks',
'ProjectImportExports',
'ProjectInvitations',
'ProjectIssueBoards',
'ProjectIterations',
'ProjectJobTokenScopes',
'ProjectLabels',
'ProjectMarkdownUploads',
'ProjectMembers',
'ProjectMilestones',
'ProjectProtectedEnvironments',
'ProjectPushRules',
'ProjectRelationsExport',
'ProjectReleases',
'ProjectRemoteMirrors',
'ProjectRepositoryStorageMoves',
'Projects',
'ProjectSnippetAwardEmojis',
'ProjectSnippetDiscussions',
'ProjectSnippetNotes',
'ProjectSnippets',
'ProjectStatistics',
'ProjectTemplates',
'ProjectVariables',
'ProjectVulnerabilities',
'ProjectWikis',
'ProtectedBranches',
'ProtectedTags',
'ReleaseLinks',
'Repositories',
'RepositoryFiles',
'RepositorySubmodules',
'ResourceGroups',
'Runners',
'SecureFiles',
'Tags',
'UserStarredMetricsDashboard',
'EpicAwardEmojis',
'EpicDiscussions',
'EpicIssues',
'EpicLabelEvents',
'EpicLinks',
'EpicNotes',
'Epics',
'GroupAccessRequests',
'GroupAccessTokens',
'GroupActivityAnalytics',
'GroupBadges',
'GroupCustomAttributes',
'GroupDORA4Metrics',
'GroupHooks',
'GroupImportExports',
'GroupInvitations',
'GroupIssueBoards',
'GroupIterations',
'GroupLabels',
'GroupLDAPLinks',
'GroupMarkdownUploads',
'GroupMembers',
'GroupMemberRoles',
'GroupMilestones',
'GroupProtectedEnvironments',
'GroupPushRules',
'GroupRelationExports',
'GroupReleases',
'GroupRepositoryStorageMoves',
'Groups',
'GroupSAMLIdentities',
'GroupSCIMIdentities',
'GroupServiceAccounts',
'GroupVariables',
'GroupWikis',
'LinkedEpics',
'UserCustomAttributes',
'UserEmails',
'UserGPGKeys',
'UserImpersonationTokens',
'Users',
'UserSSHKeys',
];
const map: Record<string, unknown> = await import('../../dist/map.json');
expect(map).toBeObject();
expect(Object.keys(map)).toIncludeAllMembers(keys);
});
});