scaffolder: add test suite for EntityNamePicker validation

Signed-off-by: Mike Lewis <mtlewis@users.noreply.github.com>
This commit is contained in:
Mike Lewis
2021-08-05 12:09:22 +01:00
parent b6d5c2a35b
commit 6dd98f9796
@@ -0,0 +1,65 @@
/*
* Copyright 2021 The Backstage Authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { FieldValidation } from '@rjsf/core';
import { KubernetesValidatorFunctions } from '@backstage/catalog-model';
import { entityNamePickerValidation } from './validation';
jest.mock('@backstage/catalog-model', () => ({
KubernetesValidatorFunctions: {
isValidObjectName: jest.fn(),
},
}));
const mockIsValidObjectName = KubernetesValidatorFunctions.isValidObjectName as jest.MockedFunction<
typeof KubernetesValidatorFunctions.isValidObjectName
>;
describe('EntityNamePicker Validation', () => {
let mockFieldValidation: FieldValidation;
beforeEach(() => {
mockFieldValidation = ({
addError: jest.fn(),
} as unknown) as FieldValidation;
});
it('calls isValidObjectName to validate value', () => {
entityNamePickerValidation('test value', mockFieldValidation);
expect(mockIsValidObjectName).toHaveBeenCalled();
});
it('does not add an error when isValidObjectName returns true', () => {
mockIsValidObjectName.mockReturnValue(true);
entityNamePickerValidation('test value', mockFieldValidation);
expect(mockFieldValidation.addError).not.toHaveBeenCalled();
});
it('adds an error when isValidObjectName returns false', () => {
mockIsValidObjectName.mockReturnValue(false);
entityNamePickerValidation('test value', mockFieldValidation);
expect(mockFieldValidation.addError).toHaveBeenCalledWith(
expect.stringMatching(
/contain only alphanumeric characters, hyphens, underscores, and periods/,
),
);
});
});