qe-fe-automation
Version:
FE test automation framework using cypress
60 lines (52 loc) • 1.54 kB
text/typescript
import { MakeRequiredSomeFields } from '@utility-lib/constants';
export type CustomField = 'projects' | 'billToClient' | 'tripPurpose';
const customFieldLabel: Record<CustomField, string> = {
projects: 'Projects',
tripPurpose: 'Trip purpose',
billToClient: 'Bill to client'
};
export type CustomFiledOption = {
isDefault: boolean;
label: string;
value: string;
isNew: boolean;
};
export type CompanyCustomFields = Map<CustomField, CustomFiledOption[]>;
export class CustomFieldsUtility {
static initCustomFieldOption(
option: MakeRequiredSomeFields<CustomFiledOption, 'label'>
): CustomFiledOption {
return {
label: option.label,
value: option.value || option.label.toUpperCase(),
isDefault: option.isDefault ?? false,
isNew: option.isNew ?? true
};
}
static generateCompanyTripPurposeData(
customField: CustomField,
options: CustomFiledOption[]
) {
return {
name: customField,
label: customFieldLabel[customField],
type: 'SELECT',
required: true,
defaultVal: '',
_isCustom: false,
options: options,
allowFreeText: false
};
}
static initCompanyCustomFieldsForTripPurpose(): CompanyCustomFields {
const companyCustomFields: CompanyCustomFields = new Map();
companyCustomFields.set('tripPurpose', [
CustomFieldsUtility.initCustomFieldOption({
label: 'Custom Trip purpose',
value: 'CUSTOM_TRIP_PURPOSE',
isDefault: true
})
]);
return companyCustomFields;
}
}