export class HitCounter extends Construct {
public readonly handler: lambda.Function;
constructor(scope: Construct, id: string, props: HitCounterProps) {
// Validation Checks
if(props.readCapacity !== undefined && (props.readCapacity < 5 || props.readCapacity > 20)) {
throw new Error("readCapacity must be below 20 and above 5");
}
// rest of definition
2. Add a test for your validation
test('read capacity can be configured', () => {
const stack = new cdk.Stack();
expect(() => {
new HitCounter(stack, 'MyTestConstruct', {
downstream: new lambda.Function(stack, 'TestFunction', {
runtime: lambda.Runtime.NODEJS_14_X,
handler: 'hello.handler',
code: lambda.Code.fromAsset('lambda')
}),
readCapacity: 3
});
}).toThrowError(/readCapacity must be greater than 5 and less than 20/);
});