@@ -3,6 +3,7 @@ import { BlobServiceClient, StorageSharedKeyCredential } from "@azure/storage-bl
33import { QueueServiceClient } from "@azure/storage-queue" ;
44import fs from "node:fs" ;
55import path from "node:path" ;
6+ import { RandomPortGenerator } from "testcontainers" ;
67import { getImage } from "../../../testcontainers/src/utils/test-helper" ;
78import { AzuriteContainer } from "./azurite-container" ;
89import { createOAuthToken , createTokenCredential , getTlsPipelineOptions } from "./azurite-test-utils" ;
@@ -98,9 +99,10 @@ describe("AzuriteContainer", { timeout: 240_000 }, () => {
9899
99100 it ( "should be able to specify custom ports" , async ( ) => {
100101 // customPorts {
101- const blobPort = 13000 ;
102- const queuePort = 14000 ;
103- const tablePort = 15000 ;
102+ const portGenerator = new RandomPortGenerator ( ) ;
103+ const blobPort = await portGenerator . generatePort ( ) ;
104+ const queuePort = await portGenerator . generatePort ( ) ;
105+ const tablePort = await portGenerator . generatePort ( ) ;
104106
105107 await using container = await new AzuriteContainer ( IMAGE )
106108 . withSkipApiVersionCheck ( )
@@ -115,10 +117,11 @@ describe("AzuriteContainer", { timeout: 240_000 }, () => {
115117 // }
116118
117119 const connectionString = container . getConnectionString ( ) ;
118- expect ( connectionString ) . toContain ( "13000" ) ;
119- expect ( connectionString ) . toContain ( "14000" ) ;
120- expect ( connectionString ) . toContain ( "15000" ) ;
120+ expect ( connectionString ) . toContain ( `: ${ blobPort } /` ) ;
121+ expect ( connectionString ) . toContain ( `: ${ queuePort } /` ) ;
122+ expect ( connectionString ) . toContain ( `: ${ tablePort } /` ) ;
121123
124+ // Exercise each service because Azurite configures their listener ports independently.
122125 const serviceClient = BlobServiceClient . fromConnectionString ( connectionString ) ;
123126 const containerClient = serviceClient . getContainerClient ( "test" ) ;
124127 await containerClient . createIfNotExists ( ) ;
0 commit comments