import { MetricSupplierResult } from '@atlassian/forge-graphql-types'; import { MetricSupplierResponse, MetricSupplierValidationErrors, } from '../../builders/metric-supplier-response'; import { METRIC_VALUES, METRIC_VALUE_DATE_INVALID } from '../fixtures/mocks'; describe('metric supplier class tests', () => { it('returns error in case no metric values provided to addMetricValues method', () => { const metricSupplierResponse = new MetricSupplierResponse() .addMetricValues(null) .build(); const expectedResult: MetricSupplierResult = { metricValues: undefined, error: MetricSupplierValidationErrors.METRIC_VALUES_NOT_PROVIDED, }; expect(metricSupplierResponse).toEqual(expectedResult); }); it('returns valid response in case metric values provided to addMetricValues method', () => { const metricSupplierResponse = new MetricSupplierResponse() .addMetricValues(METRIC_VALUES) .build(); const expectedResult: MetricSupplierResult = { metricValues: METRIC_VALUES, error: undefined, }; expect(metricSupplierResponse).toEqual(expectedResult); }); it('returns error in case of invalid date provided', () => { const metricSupplierResponse = new MetricSupplierResponse() .addMetricValues([METRIC_VALUE_DATE_INVALID]) .build(); const expectedResult: MetricSupplierResult = { metricValues: undefined, error: MetricSupplierValidationErrors.INVALID_DATE, }; expect(metricSupplierResponse).toEqual(expectedResult); }); });