Files
runner-container-hooks/packages/k8s/tests/cleanup-job-test.ts
T

66 lines
1.6 KiB
TypeScript
Raw Normal View History

import * as k8s from '@kubernetes/client-node'
import { cleanupJob, prepareJob } from '../src/hooks'
import { RunnerInstanceLabel } from '../src/hooks/constants'
import { namespace } from '../src/k8s'
2022-06-06 00:21:44 -04:00
import { TestHelper } from './test-setup'
2022-06-02 15:53:11 -04:00
2022-06-06 00:21:44 -04:00
let testHelper: TestHelper
2022-06-02 15:53:11 -04:00
describe('Cleanup Job', () => {
beforeEach(async () => {
2022-06-06 00:21:44 -04:00
testHelper = new TestHelper()
await testHelper.initialize()
let prepareJobData = testHelper.getPrepareJobDefinition()
const prepareJobOutputFilePath = testHelper.createFile(
'prepare-job-output.json'
)
2022-06-02 15:53:11 -04:00
await prepareJob(prepareJobData.args, prepareJobOutputFilePath)
})
2022-06-06 00:21:44 -04:00
afterEach(async () => {
await testHelper.cleanup()
})
it('should not throw', async () => {
await expect(cleanupJob()).resolves.not.toThrow()
})
it('should have no runner linked pods running', async () => {
await cleanupJob()
const kc = new k8s.KubeConfig()
kc.loadFromDefault()
const k8sApi = kc.makeApiClient(k8s.CoreV1Api)
const podList = await k8sApi.listNamespacedPod(
namespace(),
undefined,
undefined,
undefined,
undefined,
new RunnerInstanceLabel().toString()
)
expect(podList.body.items.length).toBe(0)
})
it('should have no runner linked secrets', async () => {
await cleanupJob()
const kc = new k8s.KubeConfig()
kc.loadFromDefault()
const k8sApi = kc.makeApiClient(k8s.CoreV1Api)
const secretList = await k8sApi.listNamespacedSecret(
namespace(),
undefined,
undefined,
undefined,
undefined,
new RunnerInstanceLabel().toString()
)
expect(secretList.body.items.length).toBe(0)
})
2022-06-02 15:53:11 -04:00
})