diff --git a/src/openapi/cluster.yaml b/src/openapi/cluster.yaml index 0faffe45d..bb9cc4775 100644 --- a/src/openapi/cluster.yaml +++ b/src/openapi/cluster.yaml @@ -24,5 +24,13 @@ Cluster: k8sContext: type: string x-hidden: true + owner: + title: Owner + $ref: 'definitions.yaml#/idName' + description: The name of the organization owning the cluster. + default: otomi provider: $ref: 'definitions.yaml#/provider' + required: + - name + - provider diff --git a/src/otomi-stack.test.ts b/src/otomi-stack.test.ts index 8ced209e3..0a0f460ed 100644 --- a/src/otomi-stack.test.ts +++ b/src/otomi-stack.test.ts @@ -1,9 +1,9 @@ /* eslint-disable @typescript-eslint/no-empty-function */ +import { mockDeep } from 'jest-mock-extended' import { AplCodeRepoResponse, AplServiceRequest, App, CodeRepo, Team, TeamConfig, User } from 'src/otomi-models' import OtomiStack from 'src/otomi-stack' -import { mockDeep } from 'jest-mock-extended' -import { PublicUrlExists } from './error' import { loadSpec } from './app' +import { PublicUrlExists } from './error' import { Git } from './git' import { RepoService } from './services/RepoService' import { TeamConfigService } from './services/TeamConfigService' @@ -256,7 +256,7 @@ describe('Users tests', () => { otomiStack.git = mockDeep() jest.spyOn(otomiStack, 'getSettings').mockReturnValue({ - cluster: { domainSuffix }, + cluster: { name: 'default-cluster', domainSuffix, provider: 'linode' }, }) jest.spyOn(otomiStack, 'saveUser').mockResolvedValue() jest.spyOn(otomiStack, 'doDeployment').mockResolvedValue() diff --git a/src/services/RepoService.test.ts b/src/services/RepoService.test.ts index 50290e402..aced17f95 100644 --- a/src/services/RepoService.test.ts +++ b/src/services/RepoService.test.ts @@ -1,7 +1,7 @@ +import { AlreadyExists } from '../error' import { App, Repo, User } from '../otomi-models' import { RepoService } from './RepoService' import { TeamConfigService } from './TeamConfigService' -import { AlreadyExists } from '../error' jest.mock('uuid', () => ({ v4: jest.fn(() => 'mocked-uuid'), @@ -16,7 +16,7 @@ describe('RepoService', () => { apps: [], users: [], teamConfig: {}, - cluster: {}, + cluster: { name: 'Test Cluster', provider: 'linode' }, dns: {}, ingress: {}, otomi: { version: '1.0.0' }, @@ -125,8 +125,8 @@ describe('RepoService', () => { describe('Collection Functions', () => { test('should retrieve a collection', () => { - service.getRepo().cluster = { name: 'Test Cluster' } - expect(service.getCollection('cluster')).toEqual({ name: 'Test Cluster' }) + service.getRepo().cluster = { name: 'Test Cluster', provider: 'linode' } + expect(service.getCollection('cluster')).toEqual({ name: 'Test Cluster', provider: 'linode' }) }) test('should throw an error for non-existent collection', () => { @@ -136,7 +136,7 @@ describe('RepoService', () => { }) test('should update an existing collection', () => { - service.getRepo().cluster = { name: 'Old Cluster' } + service.getRepo().cluster = { name: 'Old Cluster', provider: 'linode' } service.updateCollection('cluster', { name: 'Updated Cluster' }) expect(service.getCollection('cluster')).toEqual({ name: 'Updated Cluster' }) }) @@ -150,17 +150,17 @@ describe('RepoService', () => { describe('Settings', () => { test('should retrieve settings', () => { - service.getRepo().cluster = { name: 'Cluster A' } + service.getRepo().cluster = { name: 'Cluster A', provider: 'linode' } service.getRepo().dns = { provider: { linode: { apiToken: 'test' } } } const settings = service.getSettings() - expect(settings.cluster).toEqual({ name: 'Cluster A' }) + expect(settings.cluster).toEqual({ name: 'Cluster A', provider: 'linode' }) expect(settings.dns).toEqual({ provider: { linode: { apiToken: 'test' } } }) }) test('should update settings', () => { - service.updateSettings({ cluster: { name: 'Updated Cluster' } }) - expect(service.getSettings().cluster).toEqual({ name: 'Updated Cluster' }) + service.updateSettings({ cluster: { name: 'Updated Cluster', provider: 'linode' } }) + expect(service.getSettings().cluster).toEqual({ name: 'Updated Cluster', provider: 'linode' }) }) })