Skip to content
This repository has been archived by the owner on Mar 13, 2021. It is now read-only.

Commit

Permalink
W.I.P.
Browse files Browse the repository at this point in the history
  • Loading branch information
pierce-h committed Aug 24, 2020
1 parent e059320 commit 876df51
Show file tree
Hide file tree
Showing 2 changed files with 501 additions and 4 deletions.
65 changes: 61 additions & 4 deletions src/core/test-app/runner/validate-config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -37,15 +37,72 @@ const createShipmentDomesticTestParamsSchema = Joi.object({
shipDateTime: DateTimeZone[_internal].schema.optional(),
});

const createShipmentInternationalTestParamsSchema = Joi.object({
connectArgs: Joi.object().keys().unknown(),
debug: Joi.boolean().optional(),
retries: Joi.number().optional(),
session: Joi.object().keys().unknown(),
timeout: Joi.number().optional(),
skip: Joi.boolean().optional(),
deliveryServiceName: Joi.string().optional(),
deliveryConfirmationName: Joi.string().optional(),
shipFrom: AddressWithContactInfo[_internal].schema.optional(),
shipTo: AddressWithContactInfo[_internal].schema.optional(),
label: NewLabel[_internal].schema.optional(),
weight: Weight[_internal].schema.optional(),
shipDateTime: DateTimeZone[_internal].schema.optional(),
});

const CreateShipmentMultiPackageTestParamsSchema = Joi.object({
connectArgs: Joi.object().keys().unknown(),
debug: Joi.boolean().optional(),
retries: Joi.number().optional(),
session: Joi.object().keys().unknown(),
timeout: Joi.number().optional(),
skip: Joi.boolean().optional(),
})

const CreateShipmentWithInsuranceTestParamsSchema = Joi.object({
connectArgs: Joi.object().keys().unknown(),
debug: Joi.boolean().optional(),
retries: Joi.number().optional(),
session: Joi.object().keys().unknown(),
timeout: Joi.number().optional(),
skip: Joi.boolean().optional(),
})

const RateShipmentTestParamsSchema = Joi.object({
connectArgs: Joi.object().keys().unknown(),
debug: Joi.boolean().optional(),
retries: Joi.number().optional(),
session: Joi.object().keys().unknown(),
timeout: Joi.number().optional(),
skip: Joi.boolean().optional(),
})

const testsSchema = Joi.object({
createShipment_domestic: Joi.alternatives().conditional(Joi.array(), {
then: Joi.array().items(createShipmentDomesticTestParamsSchema),
otherwise: createShipmentDomesticTestParamsSchema,
}),
createShipment_international: Joi.any().optional(),
createShipment_multi_package: Joi.any().optional(),
createShipment_with_insurance: Joi.any().optional(),
rateShipment: Joi.any().optional(),
createShipment_international: Joi.alternatives().conditional(Joi.array(), {
then: Joi.array().items(createShipmentInternationalTestParamsSchema),
otherwise: createShipmentInternationalTestParamsSchema,
}),
createShipment_multi_package: Joi.alternatives().conditional(Joi.array(), {
then: Joi.array().items(CreateShipmentMultiPackageTestParamsSchema),
otherwise: CreateShipmentMultiPackageTestParamsSchema,
}),

createShipment_with_insurance: Joi.alternatives().conditional(Joi.array(), {
then: Joi.array().items(CreateShipmentWithInsuranceTestParamsSchema),
otherwise: CreateShipmentWithInsuranceTestParamsSchema,
}),

rateShipment: Joi.alternatives().conditional(Joi.array(), {
then: Joi.array().items(RateShipmentTestParamsSchema),
otherwise: RateShipmentTestParamsSchema,
}),
});

const schema = Joi.object().keys({
Expand Down
Loading

0 comments on commit 876df51

Please sign in to comment.