LD4P/sinopia_api

View on GitHub
__tests__/aws.comprehend.test.js

Summary

Maintainability
A
0 mins
Test Coverage
/* eslint-disable camelcase */
import {
mockSend as mockComprehendSend,
DetectDominantLanguageCommand,
} from "@aws-sdk/client-comprehend"
import { detectLanguage } from "aws.js"
 
jest.mock("@aws-sdk/client-comprehend", () => {
const mockSend = jest.fn()
return {
__esModule: true,
mockSend,
ComprehendClient: jest.fn().mockImplementation(() => {
return {
send: mockSend,
}
}),
DetectDominantLanguageCommand: jest.fn(),
}
})
 
describe("detectLanguage", () => {
describe("successful", () => {
it("invokes comprehend and resolves", async () => {
mockComprehendSend.mockResolvedValue({
Languages: [
{ LanguageCode: "es", Score: 0.23285673558712006 },
{ LanguageCode: "en", Score: 0.4512737989425659 },
],
})
 
expect(await detectLanguage("el diablo")).toEqual([
{ language: "en", score: 0.4512737989425659 },
{ language: "es", score: 0.23285673558712006 },
])
expect(DetectDominantLanguageCommand).toHaveBeenCalledWith({
Text: "el diablo",
})
expect(mockComprehendSend).toHaveBeenCalledTimes(1)
})
})
 
describe("failure", () => {
it("invokes comprehend and rejects", async () => {
mockComprehendSend.mockRejectedValue(new Error("AWS fail"))
 
await expect(detectLanguage("el diablo")).rejects.toThrow("AWS fail")
})
})
})