docs
evals
scenario-1
scenario-10
scenario-2
scenario-3
scenario-4
scenario-5
scenario-6
scenario-7
scenario-8
scenario-9
Build a tool that simulates multiple user sessions using isolated browser contexts to test session management and cookie isolation.
Create a session simulator that manages multiple isolated user sessions. Each session should:
Create a function to launch and configure the browser instance for session management.
Implement a function that creates a new isolated session with:
Implement functions to:
Create a verification function that confirms two sessions maintain separate cookies when accessing the same URL.
Implement cleanup functions to:
/**
* Initialize the browser for session simulation
* @param {Object} options - Browser launch options
* @param {string} options.executablePath - Path to browser executable
* @returns {Promise<Browser>} Browser instance
*/
async function initBrowser(options) {
// Implementation
}
/**
* Create a new isolated user session
* @param {Browser} browser - Browser instance
* @param {Object} sessionData - Session initialization data
* @param {string} sessionData.username - Username for the session
* @param {string} sessionData.sessionToken - Session authentication token
* @param {string} sessionData.domain - Cookie domain
* @returns {Promise<UserSession>} Session object with context and helper methods
*/
async function createUserSession(browser, sessionData) {
// Implementation
}
/**
* Get all cookies for a session
* @param {UserSession} session - User session object
* @param {string} [url] - Optional URL to filter cookies
* @returns {Promise<Array>} Array of cookie objects
*/
async function getSessionCookies(session, url) {
// Implementation
}
/**
* Verify that two sessions are properly isolated
* @param {UserSession} session1 - First session
* @param {UserSession} session2 - Second session
* @param {string} testUrl - URL to test with both sessions
* @returns {Promise<boolean>} True if sessions are properly isolated
*/
async function verifySessionIsolation(session1, session2, testUrl) {
// Implementation
}
/**
* Close a user session and cleanup resources
* @param {UserSession} session - Session to close
* @returns {Promise<void>}
*/
async function closeSession(session) {
// Implementation
}
/**
* Close browser and cleanup all resources
* @param {Browser} browser - Browser instance to close
* @returns {Promise<void>}
*/
async function cleanup(browser) {
// Implementation
}Provides browser automation and context management capabilities.