Skip to content

Commit ce30a4c

Browse files
authored
fix: cluster schema (#694)
* fix: update cluster schema * fix: tests
1 parent 2328665 commit ce30a4c

File tree

3 files changed

+20
-12
lines changed

3 files changed

+20
-12
lines changed

src/openapi/cluster.yaml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,5 +24,13 @@ Cluster:
2424
k8sContext:
2525
type: string
2626
x-hidden: true
27+
owner:
28+
title: Owner
29+
$ref: 'definitions.yaml#/idName'
30+
description: The name of the organization owning the cluster.
31+
default: otomi
2732
provider:
2833
$ref: 'definitions.yaml#/provider'
34+
required:
35+
- name
36+
- provider

src/otomi-stack.test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
/* eslint-disable @typescript-eslint/no-empty-function */
2+
import { mockDeep } from 'jest-mock-extended'
23
import { AplCodeRepoResponse, AplServiceRequest, App, CodeRepo, Team, TeamConfig, User } from 'src/otomi-models'
34
import OtomiStack from 'src/otomi-stack'
4-
import { mockDeep } from 'jest-mock-extended'
5-
import { PublicUrlExists } from './error'
65
import { loadSpec } from './app'
6+
import { PublicUrlExists } from './error'
77
import { Git } from './git'
88
import { RepoService } from './services/RepoService'
99
import { TeamConfigService } from './services/TeamConfigService'
@@ -256,7 +256,7 @@ describe('Users tests', () => {
256256
otomiStack.git = mockDeep<Git>()
257257

258258
jest.spyOn(otomiStack, 'getSettings').mockReturnValue({
259-
cluster: { domainSuffix },
259+
cluster: { name: 'default-cluster', domainSuffix, provider: 'linode' },
260260
})
261261
jest.spyOn(otomiStack, 'saveUser').mockResolvedValue()
262262
jest.spyOn(otomiStack, 'doDeployment').mockResolvedValue()

src/services/RepoService.test.ts

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1+
import { AlreadyExists } from '../error'
12
import { App, Repo, User } from '../otomi-models'
23
import { RepoService } from './RepoService'
34
import { TeamConfigService } from './TeamConfigService'
4-
import { AlreadyExists } from '../error'
55

66
jest.mock('uuid', () => ({
77
v4: jest.fn(() => 'mocked-uuid'),
@@ -16,7 +16,7 @@ describe('RepoService', () => {
1616
apps: [],
1717
users: [],
1818
teamConfig: {},
19-
cluster: {},
19+
cluster: { name: 'Test Cluster', provider: 'linode' },
2020
dns: {},
2121
ingress: {},
2222
otomi: { version: '1.0.0' },
@@ -125,8 +125,8 @@ describe('RepoService', () => {
125125

126126
describe('Collection Functions', () => {
127127
test('should retrieve a collection', () => {
128-
service.getRepo().cluster = { name: 'Test Cluster' }
129-
expect(service.getCollection('cluster')).toEqual({ name: 'Test Cluster' })
128+
service.getRepo().cluster = { name: 'Test Cluster', provider: 'linode' }
129+
expect(service.getCollection('cluster')).toEqual({ name: 'Test Cluster', provider: 'linode' })
130130
})
131131

132132
test('should throw an error for non-existent collection', () => {
@@ -136,7 +136,7 @@ describe('RepoService', () => {
136136
})
137137

138138
test('should update an existing collection', () => {
139-
service.getRepo().cluster = { name: 'Old Cluster' }
139+
service.getRepo().cluster = { name: 'Old Cluster', provider: 'linode' }
140140
service.updateCollection('cluster', { name: 'Updated Cluster' })
141141
expect(service.getCollection('cluster')).toEqual({ name: 'Updated Cluster' })
142142
})
@@ -150,17 +150,17 @@ describe('RepoService', () => {
150150

151151
describe('Settings', () => {
152152
test('should retrieve settings', () => {
153-
service.getRepo().cluster = { name: 'Cluster A' }
153+
service.getRepo().cluster = { name: 'Cluster A', provider: 'linode' }
154154
service.getRepo().dns = { provider: { linode: { apiToken: 'test' } } }
155155
const settings = service.getSettings()
156156

157-
expect(settings.cluster).toEqual({ name: 'Cluster A' })
157+
expect(settings.cluster).toEqual({ name: 'Cluster A', provider: 'linode' })
158158
expect(settings.dns).toEqual({ provider: { linode: { apiToken: 'test' } } })
159159
})
160160

161161
test('should update settings', () => {
162-
service.updateSettings({ cluster: { name: 'Updated Cluster' } })
163-
expect(service.getSettings().cluster).toEqual({ name: 'Updated Cluster' })
162+
service.updateSettings({ cluster: { name: 'Updated Cluster', provider: 'linode' } })
163+
expect(service.getSettings().cluster).toEqual({ name: 'Updated Cluster', provider: 'linode' })
164164
})
165165
})
166166

0 commit comments

Comments
 (0)