1- const mockV4Sign = jest . fn ( ) ;
2- const mockPresign = jest . fn ( ) ;
3- const mockV4 = jest . fn ( ) . mockReturnValue ( {
4- presign : mockPresign ,
5- sign : mockV4Sign ,
6- } ) ;
7- jest . mock ( "@smithy/signature-v4" , ( ) => ( {
8- SignatureV4 : mockV4 ,
9- } ) ) ;
1+ import { beforeEach , describe , expect , test as it , vi } from "vitest" ;
102
3+ vi . mock ( "@smithy/signature-v4" , ( ) => ( {
4+ SignatureV4 : vi . fn ( ) . mockReturnValue ( {
5+ presign : vi . fn ( ) ,
6+ sign : vi . fn ( ) ,
7+ } ) ,
8+ } ) ) ;
119import { PollyClient , SynthesizeSpeechCommand } from "@aws-sdk/client-polly" ;
10+ import { SignatureV4 } from "@smithy/signature-v4" ;
1211
13- jest . mock ( "@aws-sdk/util-format-url" , ( ) => ( {
12+ vi . mock ( "@aws-sdk/util-format-url" , ( ) => ( {
1413 formatUrl : ( url : any ) => url ,
1514} ) ) ;
1615
@@ -19,6 +18,7 @@ import { AwsCredentialIdentity, RequestPresigningArguments } from "@smithy/types
1918import { getSignedUrl } from "./getSignedUrls" ;
2019
2120describe ( "getSignedUrl" , ( ) => {
21+ const mockInstance = new SignatureV4 ( { } as any ) ;
2222 const credentials : AwsCredentialIdentity = {
2323 secretAccessKey : "unit-test" ,
2424 accessKeyId : "unit-test" ,
@@ -27,12 +27,12 @@ describe("getSignedUrl", () => {
2727 const clientParams = { region : "us-foo-1" , credentials } ;
2828
2929 beforeEach ( ( ) => {
30- mockPresign . mockReset ( ) ;
30+ vi . mocked ( mockInstance ) . presign . mockReset ( ) ;
3131 } ) ;
3232
3333 it ( "should call SignatureV4.sign" , async ( ) => {
3434 const mockPresigned = "a presigned url" ;
35- mockPresign . mockReturnValue ( mockPresigned ) ;
35+ vi . mocked ( mockInstance ) . presign . mockReturnValue ( mockPresigned as any ) ;
3636 const client = new PollyClient ( clientParams ) ;
3737 const command = new SynthesizeSpeechCommand ( {
3838 Text : "hello world, this is alex" ,
@@ -41,15 +41,15 @@ describe("getSignedUrl", () => {
4141 } ) ;
4242 const signed = await getSignedUrl ( client , command ) ;
4343 expect ( signed ) . toBe ( mockPresigned ) ;
44- expect ( mockPresign ) . toBeCalled ( ) ;
45- expect ( mockV4Sign ) . not . toBeCalled ( ) ;
44+ expect ( vi . mocked ( mockInstance ) . presign ) . toBeCalled ( ) ;
45+ expect ( vi . mocked ( mockInstance ) . sign ) . not . toBeCalled ( ) ;
4646 expect ( client . middlewareStack . remove ( "presignInterceptMiddleware" ) ) . toBe ( false ) ;
4747 expect ( command . middlewareStack . remove ( "presignInterceptMiddleware" ) ) . toBe ( false ) ;
4848 } ) ;
4949
5050 it ( "should presign with signing region and service in context if exists" , async ( ) => {
5151 const mockPresigned = "a presigned url" ;
52- mockPresign . mockReturnValue ( mockPresigned ) ;
52+ vi . mocked ( mockInstance ) . presign . mockReturnValue ( mockPresigned as any ) ;
5353 const signingRegion = "aws-foo-1" ;
5454 const signingService = "bar" ;
5555 const client = new PollyClient ( clientParams ) ;
@@ -70,16 +70,16 @@ describe("getSignedUrl", () => {
7070 VoiceId : "Kimberly" ,
7171 } ) ;
7272 await getSignedUrl ( client , command ) ;
73- expect ( mockPresign ) . toBeCalled ( ) ;
74- expect ( mockPresign . mock . calls [ 0 ] [ 1 ] ) . toMatchObject ( {
73+ expect ( vi . mocked ( mockInstance ) . presign ) . toBeCalled ( ) ;
74+ expect ( vi . mocked ( mockInstance ) . presign . mock . calls [ 0 ] [ 1 ] ) . toMatchObject ( {
7575 signingRegion,
7676 signingService,
7777 } ) ;
7878 } ) ;
7979
8080 it ( "should presign with parameters from presign options if set" , async ( ) => {
8181 const mockPresigned = "a presigned url" ;
82- mockPresign . mockReturnValue ( mockPresigned ) ;
82+ vi . mocked ( mockInstance ) . presign . mockReturnValue ( mockPresigned as any ) ;
8383 const options : RequestPresigningArguments = {
8484 signingRegion : "aws-foo-1" ,
8585 signingService : "bar" ,
@@ -95,12 +95,12 @@ describe("getSignedUrl", () => {
9595 VoiceId : "Kimberly" ,
9696 } ) ;
9797 await getSignedUrl ( client , command , options ) ;
98- expect ( mockPresign ) . toBeCalled ( ) ;
99- expect ( mockPresign . mock . calls [ 0 ] [ 1 ] ) . toMatchObject ( options ) ;
98+ expect ( vi . mocked ( mockInstance ) . presign ) . toBeCalled ( ) ;
99+ expect ( vi . mocked ( mockInstance ) . presign . mock . calls [ 0 ] [ 1 ] ) . toMatchObject ( options ) ;
100100 } ) ;
101101 it ( "should not throw if called concurrently" , async ( ) => {
102102 const mockPresigned = "a presigned url" ;
103- mockPresign . mockReturnValue ( mockPresigned ) ;
103+ vi . mocked ( mockInstance ) . presign . mockReturnValue ( mockPresigned as any ) ;
104104 const client = new PollyClient ( clientParams ) ;
105105 const command = new SynthesizeSpeechCommand ( {
106106 Text : "hello world, this is alex" ,
@@ -110,6 +110,6 @@ describe("getSignedUrl", () => {
110110 const result = await Promise . all ( [ getSignedUrl ( client , command ) , getSignedUrl ( client , command ) ] ) ;
111111 expect ( result ) . toBeInstanceOf ( Array ) ;
112112 expect ( result ) . toHaveLength ( 2 ) ;
113- expect ( mockPresign ) . toHaveBeenCalledTimes ( 2 ) ;
113+ expect ( vi . mocked ( mockInstance ) . presign ) . toHaveBeenCalledTimes ( 2 ) ;
114114 } ) ;
115115} ) ;
0 commit comments