|
1 | 1 | import os from 'os';
|
| 2 | +import { run, filterAppsByName, type App } from '../src/main'; |
2 | 3 |
|
3 |
| -describe('main', () => { |
| 4 | +describe('Action', () => { |
4 | 5 | // shows how the runner will run a javascript action with env / stdout protocol
|
5 |
| - test('test runs', async () => { |
| 6 | + test('runs', async () => { |
6 | 7 | process.env['RUNNER_TEMP'] = os.tmpdir();
|
7 | 8 | process.env['GITHUB_REPOSITORY'] = 'quizlet/cd-infra';
|
8 | 9 | process.env['INPUT_GITHUB-TOKEN'] = '500';
|
9 | 10 | process.env['INPUT_ARGOCD-VERSION'] = 'v1.6.1';
|
10 | 11 | process.env['INPUT_ARGOCD-SERVER-URL'] = 'argocd.qzlt.io';
|
11 | 12 | process.env['INPUT_ARGOCD-TOKEN'] = 'foo';
|
12 |
| - expect(import('../src/main')).resolves.toBeTruthy(); |
| 13 | + expect(run()).rejects.toThrow(); |
| 14 | + }); |
| 15 | + |
| 16 | + describe('matches app names', () => { |
| 17 | + const makeApp = (name: string) => ({ metadata: { name } }) as App; |
| 18 | + |
| 19 | + test('allows all apps when matcher is empty', () => { |
| 20 | + expect(filterAppsByName([makeApp('foobar'), makeApp('bazqux')], '')).toEqual([ |
| 21 | + makeApp('foobar'), |
| 22 | + makeApp('bazqux') |
| 23 | + ]); |
| 24 | + }); |
| 25 | + |
| 26 | + test('allows only apps when matcher is provided', () => { |
| 27 | + expect(filterAppsByName([makeApp('foobar'), makeApp('bazqux')], 'foobar')).toEqual([ |
| 28 | + makeApp('foobar') |
| 29 | + ]); |
| 30 | + }); |
| 31 | + |
| 32 | + test('treats matcher as regex when it is delimited by slashes', () => { |
| 33 | + expect(filterAppsByName([makeApp('foobar'), makeApp('bazqux')], '/bar$/')).toEqual([ |
| 34 | + makeApp('foobar') |
| 35 | + ]); |
| 36 | + }); |
| 37 | + |
| 38 | + test('with negative lookahead in regex', () => { |
| 39 | + expect(filterAppsByName([makeApp('foobar'), makeApp('bazqux')], '/^(?!foobar$).*$/')).toEqual( |
| 40 | + [makeApp('bazqux')] |
| 41 | + ); |
| 42 | + }); |
13 | 43 | });
|
14 | 44 | });
|
0 commit comments