mirror of
https://github.com/Azure/k8s-set-context.git
synced 2026-06-27 01:29:26 +08:00
Migrate to ESM with esbuild, vitest (#227)
* Migrate to ESM, esbuild, vitest, and update actions/* to latest - Update @actions/core to 3.x, @actions/exec to 3.x, @actions/io to 3.x - Replace @vercel/ncc + babel with esbuild (build.mjs) targeting Node 20 ESM - Replace jest/babel-jest/ts-jest with vitest and @vitest/coverage-v8 - Update tsconfig to NodeNext module resolution with strict mode - Add explicit .js extensions to all relative imports (NodeNext requirement) - Fix implicit any index signatures in parseCluster and parseMethod - Migrate all test files from jest to vi.mock/vi.mocked APIs - Fix ESM module spying limitations using vi.mock() at module level - Fix env var test pollution in default.test.ts with afterEach cleanup * remove build.mjs and update build script * update pkg lock * update pkg lock
This commit is contained in:
+16
-13
@@ -1,7 +1,9 @@
|
||||
import {getRequiredInputError} from '../tests/util'
|
||||
import {run} from './action'
|
||||
import fs from 'fs'
|
||||
import * as utils from './utils'
|
||||
import {vi, describe, it, expect} from 'vitest'
|
||||
import {getRequiredInputError} from '../tests/util.js'
|
||||
import {run} from './action.js'
|
||||
|
||||
vi.mock('fs')
|
||||
vi.mock('./utils.js')
|
||||
|
||||
describe('Run', () => {
|
||||
it('throws error without cluster type', async () => {
|
||||
@@ -9,22 +11,23 @@ describe('Run', () => {
|
||||
})
|
||||
|
||||
it('writes kubeconfig and sets context', async () => {
|
||||
const {getKubeconfig, setContext} = await import('./utils.js')
|
||||
const fs = await import('fs')
|
||||
const kubeconfig = 'kubeconfig'
|
||||
|
||||
process.env['INPUT_CLUSTER-TYPE'] = 'default'
|
||||
process.env['RUNNER_TEMP'] = '/sample/path'
|
||||
|
||||
jest
|
||||
.spyOn(utils, 'getKubeconfig')
|
||||
.mockImplementation(async () => kubeconfig)
|
||||
jest.spyOn(fs, 'writeFileSync').mockImplementation(() => {})
|
||||
jest.spyOn(fs, 'chmodSync').mockImplementation(() => {})
|
||||
jest.spyOn(utils, 'setContext').mockImplementation(() => kubeconfig)
|
||||
vi.mocked(getKubeconfig).mockResolvedValue(kubeconfig)
|
||||
vi.mocked(setContext).mockReturnValue(kubeconfig)
|
||||
vi.mocked(fs.writeFileSync).mockImplementation(() => {})
|
||||
vi.mocked(fs.chmodSync).mockImplementation(() => {})
|
||||
|
||||
expect(await run())
|
||||
expect(utils.getKubeconfig).toHaveBeenCalled()
|
||||
await run()
|
||||
|
||||
expect(getKubeconfig).toHaveBeenCalled()
|
||||
expect(fs.writeFileSync).toHaveBeenCalled()
|
||||
expect(fs.chmodSync).toHaveBeenCalled()
|
||||
expect(utils.setContext).toHaveBeenCalled()
|
||||
expect(setContext).toHaveBeenCalled()
|
||||
})
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user