|
1 | | -import { getTimeRangeAndStepSize, supportsPrometheusMetrics } from './util'; |
| 1 | +import { getTimeRangeAndStepSize, isArgoCDApplication, supportsPrometheusMetrics } from './util'; |
2 | 2 |
|
3 | 3 | beforeAll(async () => { |
4 | 4 | global.TextEncoder = require('util').TextEncoder; |
@@ -138,9 +138,43 @@ describe('supportsPrometheusMetrics', () => { |
138 | 138 | false, |
139 | 139 | ], |
140 | 140 | ['rejects Queues without apiVersion', { kind: 'Queue', jsonData: { kind: 'Queue' } }, false], |
| 141 | + [ |
| 142 | + 'does not show Application metrics before the chart UI is available', |
| 143 | + { |
| 144 | + kind: 'Application', |
| 145 | + jsonData: { kind: 'Application', apiVersion: 'argoproj.io/v1alpha1' }, |
| 146 | + }, |
| 147 | + false, |
| 148 | + ], |
| 149 | + [ |
| 150 | + 'rejects non-Argo Applications with the same kind', |
| 151 | + { kind: 'Application', jsonData: { kind: 'Application', apiVersion: 'example.com/v1' } }, |
| 152 | + false, |
| 153 | + ], |
141 | 154 | ['rejects unknown kinds', { kind: 'VolcanoJob', jsonData: { kind: 'VolcanoJob' } }, false], |
142 | 155 | ['rejects missing resources', undefined, false], |
143 | 156 | ])('%s', (_, resource, expected) => { |
144 | 157 | expect(supportsPrometheusMetrics(resource)).toBe(expected); |
145 | 158 | }); |
146 | 159 | }); |
| 160 | + |
| 161 | +describe('isArgoCDApplication', () => { |
| 162 | + test.each([ |
| 163 | + [ |
| 164 | + 'recognizes the Argo CD Application CRD', |
| 165 | + { |
| 166 | + kind: 'Application', |
| 167 | + jsonData: { kind: 'Application', apiVersion: 'argoproj.io/v1alpha1' }, |
| 168 | + }, |
| 169 | + true, |
| 170 | + ], |
| 171 | + [ |
| 172 | + 'rejects another Application kind', |
| 173 | + { kind: 'Application', jsonData: { kind: 'Application', apiVersion: 'example.com/v1' } }, |
| 174 | + false, |
| 175 | + ], |
| 176 | + ['rejects an Application without an API version', { kind: 'Application' }, false], |
| 177 | + ])('%s', (_, resource, expected) => { |
| 178 | + expect(isArgoCDApplication(resource)).toBe(expected); |
| 179 | + }); |
| 180 | +}); |
0 commit comments