inputs.test.ts 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. import {expect, test} from '@jest/globals'
  2. import {Inputs, getInputs} from '../src/inputs'
  3. test.concurrent('valid inputs are parsed correctly', async () => {
  4. process.env['INPUT_COMMANDS'] = 'echo "Hello world!"'
  5. process.env['INPUT_SHELL'] = 'default-shell'
  6. process.env['INPUT_WORKING-DIRECTORY'] = process.cwd()
  7. process.env['INPUT_TIMEOUT-MINUTES'] = '2'
  8. process.env['INPUT_MAX-RETRIES'] = '3'
  9. process.env['INPUT_RETRY-CODES'] = '1,139'
  10. const expected: Inputs = {
  11. commands: ['echo "Hello world!"'],
  12. shell: {
  13. executable: '/usr/bin/bash',
  14. args: ['-e', '{0}'],
  15. scriptSuffix: ''
  16. },
  17. working_directory: process.cwd(),
  18. timeout_minutes: 2,
  19. max_retries: 3,
  20. retry_codes: [1, 139]
  21. }
  22. await expect(getInputs()).resolves.toStrictEqual(expected)
  23. })
  24. test.concurrent('invalid inputs throw', async () => {
  25. process.env['INPUT_COMMANDS'] = 'echo "Hello world!"'
  26. process.env['INPUT_SHELL'] = 'default-shell'
  27. process.env['INPUT_WORKING-DIRECTORY'] = process.cwd()
  28. process.env['INPUT_TIMEOUT-MINUTES'] = '2'
  29. process.env['INPUT_MAX-RETRIES'] = '3'
  30. process.env['INPUT_RETRY-CODES'] = '----,invalid'
  31. await expect(getInputs()).rejects.toThrow(/is not a number/)
  32. })
  33. test.concurrent('providing only one retry code works as well', async () => {
  34. process.env['INPUT_COMMANDS'] = 'echo "Hello world!"'
  35. process.env['INPUT_SHELL'] = 'default-shell'
  36. process.env['INPUT_WORKING-DIRECTORY'] = process.cwd()
  37. process.env['INPUT_TIMEOUT-MINUTES'] = '2'
  38. process.env['INPUT_MAX-RETRIES'] = '3'
  39. process.env['INPUT_RETRY-CODES'] = '139'
  40. const expected: Inputs = {
  41. commands: ['echo "Hello world!"'],
  42. shell: {
  43. executable: '/usr/bin/bash',
  44. args: ['-e', '{0}'],
  45. scriptSuffix: ''
  46. },
  47. working_directory: process.cwd(),
  48. timeout_minutes: 2,
  49. max_retries: 3,
  50. retry_codes: [139]
  51. }
  52. await expect(getInputs()).resolves.toStrictEqual(expected)
  53. })