@gp_jcisneros/aws-utils
Version:
AWS SDK utilities for GreenPay microservices
112 lines (103 loc) • 3.1 kB
JavaScript
// Jest setup file for AWS SDK v3 mocks
// Mock AWS SDK v3 DynamoDB
jest.mock('@aws-sdk/client-dynamodb', () => {
return {
DynamoDBClient: jest.fn().mockImplementation(() => ({
send: jest.fn(),
destroy: jest.fn().mockResolvedValue(undefined),
})),
};
});
jest.mock('@aws-sdk/lib-dynamodb', () => {
return {
DynamoDBDocumentClient: {
from: jest.fn().mockReturnValue({
send: jest.fn(),
destroy: jest.fn().mockResolvedValue(undefined),
}),
},
GetCommand: jest.fn(),
PutCommand: jest.fn(),
QueryCommand: jest.fn(),
ScanCommand: jest.fn(),
DeleteCommand: jest.fn(),
UpdateCommand: jest.fn(),
BatchGetCommand: jest.fn(),
};
});
// Mock AWS SDK v3 Lambda
jest.mock('@aws-sdk/client-lambda', () => {
return {
LambdaClient: jest.fn().mockImplementation(() => ({
send: jest.fn(),
destroy: jest.fn().mockResolvedValue(undefined),
})),
InvokeCommand: jest.fn(),
GetFunctionConfigurationCommand: jest.fn(),
};
});
// Mock AWS SDK v3 S3
jest.mock('@aws-sdk/client-s3', () => {
return {
S3Client: jest.fn().mockImplementation(() => ({
send: jest.fn(),
destroy: jest.fn().mockResolvedValue(undefined),
})),
PutObjectCommand: jest.fn(),
GetObjectCommand: jest.fn(),
DeleteObjectCommand: jest.fn(),
ListObjectsV2Command: jest.fn(),
HeadObjectCommand: jest.fn(),
CopyObjectCommand: jest.fn(),
};
});
// Mock AWS SDK v3 SQS
jest.mock('@aws-sdk/client-sqs', () => {
return {
SQSClient: jest.fn().mockImplementation(() => ({
send: jest.fn(),
destroy: jest.fn().mockResolvedValue(undefined),
})),
SendMessageCommand: jest.fn(),
ReceiveMessageCommand: jest.fn(),
DeleteMessageCommand: jest.fn(),
SendMessageBatchCommand: jest.fn(),
DeleteMessageBatchCommand: jest.fn(),
GetQueueAttributesCommand: jest.fn(),
CreateQueueCommand: jest.fn(),
DeleteQueueCommand: jest.fn(),
};
});
// Mock AWS SDK v3 Cognito
jest.mock('@aws-sdk/client-cognito-identity-provider', () => {
return {
CognitoIdentityProviderClient: jest.fn().mockImplementation(() => ({
send: jest.fn(),
destroy: jest.fn().mockResolvedValue(undefined),
})),
AuthFlowType: {
USER_PASSWORD_AUTH: 'USER_PASSWORD_AUTH',
REFRESH_TOKEN_AUTH: 'REFRESH_TOKEN_AUTH',
},
SignUpCommand: jest.fn(),
InitiateAuthCommand: jest.fn(),
ConfirmSignUpCommand: jest.fn(),
ForgotPasswordCommand: jest.fn(),
ConfirmForgotPasswordCommand: jest.fn(),
CreateGroupCommand: jest.fn(),
RevokeTokenCommand: jest.fn(),
DeleteGroupCommand: jest.fn(),
ChangePasswordCommand: jest.fn(),
AdminAddUserToGroupCommand: jest.fn(),
AdminRemoveUserFromGroupCommand: jest.fn(),
AdminDeleteUserCommand: jest.fn(),
};
});
// Global test cleanup
afterAll(async () => {
// Ensure all timers are cleared
jest.clearAllTimers();
jest.useRealTimers();
// Add small delay to allow any pending operations to complete
await new Promise((resolve) => setTimeout(resolve, 100));
});