2021-12-13 23:03:09 -05:00
|
|
|
const process = require('process')
|
|
|
|
|
const cp = require('child_process')
|
|
|
|
|
const path = require('path')
|
2023-03-06 22:04:25 -06:00
|
|
|
|
2021-12-13 23:03:09 -05:00
|
|
|
describe('with all environment variables set', () => {
|
|
|
|
|
beforeEach(() => {
|
2023-03-06 22:04:25 -06:00
|
|
|
process.env.ACTIONS_RUNTIME_URL = 'http://my-url'
|
2021-12-13 23:03:09 -05:00
|
|
|
process.env.GITHUB_RUN_ID = '123'
|
|
|
|
|
process.env.ACTIONS_RUNTIME_TOKEN = 'a-token'
|
2022-09-09 16:59:57 -05:00
|
|
|
process.env.GITHUB_REPOSITORY = 'actions/is-awesome'
|
2021-12-13 23:03:09 -05:00
|
|
|
process.env.GITHUB_TOKEN = 'gha-token'
|
|
|
|
|
process.env.GITHUB_SHA = '123abc'
|
|
|
|
|
process.env.GITHUB_ACTOR = 'monalisa'
|
|
|
|
|
process.env.GITHUB_ACTION = '__monalisa/octocat'
|
|
|
|
|
process.env.GITHUB_ACTION_PATH = 'something'
|
|
|
|
|
})
|
|
|
|
|
|
2023-03-06 22:04:25 -06:00
|
|
|
it('executes cleanly', done => {
|
2023-04-13 22:59:58 +01:00
|
|
|
const ip = path.join(__dirname, '../src/index.js')
|
2021-12-13 23:03:09 -05:00
|
|
|
cp.exec(`node ${ip}`, { env: process.env }, (err, stdout) => {
|
|
|
|
|
expect(stdout).toMatch(/::debug::all variables are set/)
|
|
|
|
|
done()
|
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
describe('with variables missing', () => {
|
|
|
|
|
it('execution fails if there are missing variables', done => {
|
|
|
|
|
delete process.env.ACTIONS_RUNTIME_URL
|
2023-04-13 22:59:58 +01:00
|
|
|
const ip = path.join(__dirname, '../src/index.js')
|
2022-08-23 17:19:21 -07:00
|
|
|
cp.exec(`node ${ip}`, { env: process.env }, (err, stdout) => {
|
|
|
|
|
expect(stdout).toBe('')
|
2021-12-13 23:03:09 -05:00
|
|
|
expect(err).toBeTruthy()
|
|
|
|
|
expect(err.code).toBe(1)
|
|
|
|
|
done()
|
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
})
|