MSSQL Server
Install
| npm install @testcontainers/mssqlserver --save-dev
|
Examples
These examples use the following libraries:
- mssql
| npm install mssql
npm install @types/mssql --save-dev
|
Choose an image from the container registry and substitute IMAGE
.
EULA Acceptance
Due to licencing restrictions you are required to accept an EULA for this container image. To indicate that you accept the MS SQL Server image EULA, call the acceptLicense()
method.
Please see the microsoft-mssql-server
image documentation for a link to the EULA document.
Execute a query
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 | await using container = await new MSSQLServerContainer(IMAGE).acceptLicense().start();
const sqlConfig: config = {
user: container.getUsername(),
password: container.getPassword(),
database: container.getDatabase(),
server: container.getHost(),
port: container.getPort(),
pool: { max: 1, min: 0, idleTimeoutMillis: 30000 },
options: { trustServerCertificate: true },
};
const connection = await sql.connect(sqlConfig);
const { recordset } = await connection.query`SELECT 1;`;
expect(recordset).toStrictEqual([{ "": 1 }]);
await connection.close();
|
Connect via URI
| await using container = await new MSSQLServerContainer(IMAGE).acceptLicense().start();
const connectionString = container.getConnectionUri();
const connection = await sql.connect(connectionString);
const { recordset } = await connection.query`SELECT 1;`;
expect(recordset).toStrictEqual([{ "": 1 }]);
await connection.close();
|
With password
| await using container = await new MSSQLServerContainer(IMAGE).acceptLicense().withPassword("I!@M#$eCur3").start();
|
With different edition
| await using container = await new MSSQLServerContainer(IMAGE)
.acceptLicense()
.withEnvironment({ MSSQL_PID: "Express" })
.withWaitForMessage(/.*Attribute synchronization manager initialized*/)
.start();
|