or run

npx @tessl/cli init
Log in

Version

Files

tile.json

task.mdevals/scenario-8/

Database Connection Manager with Timeout Control

A utility module for managing PostgreSQL database connections with configurable timeout settings to handle unreliable network conditions and slow server responses.

Capabilities

Connection with Timeout Configuration

  • Connects to a PostgreSQL database with a 5000ms connection timeout and successfully establishes the connection @test
  • Attempts to connect with a 1000ms timeout to an unreachable host and fails with a timeout error @test

Connection Pool with Timeout Settings

  • Creates a connection pool with a 3000ms connection timeout and successfully acquires a client @test
  • Attempts to acquire a client from a pool with a 500ms timeout when connecting to a slow server and receives a timeout error @test

Implementation

@generates

API

/**
 * Creates a PostgreSQL client with connection timeout configuration
 * @param {Object} config - Configuration object containing connection parameters
 * @param {string} config.host - Database host
 * @param {number} config.port - Database port
 * @param {string} config.database - Database name
 * @param {string} config.user - Database user
 * @param {string} config.password - Database password
 * @param {number} config.connectionTimeoutMillis - Connection timeout in milliseconds
 * @returns {Object} PostgreSQL client instance
 */
function createClient(config) {
  // IMPLEMENTATION HERE
}

/**
 * Creates a PostgreSQL connection pool with connection timeout configuration
 * @param {Object} config - Configuration object containing connection and pool parameters
 * @param {string} config.host - Database host
 * @param {number} config.port - Database port
 * @param {string} config.database - Database name
 * @param {string} config.user - Database user
 * @param {string} config.password - Database password
 * @param {number} config.connectionTimeoutMillis - Connection timeout in milliseconds
 * @param {number} config.max - Maximum number of clients in the pool (default: 10)
 * @returns {Object} PostgreSQL pool instance
 */
function createPool(config) {
  // IMPLEMENTATION HERE
}

module.exports = {
  createClient,
  createPool
};

Dependencies { .dependencies }

pg { .dependency }

Provides PostgreSQL database client functionality with connection timeout support.