@@ -21,11 +21,10 @@ export function WorkbenchAppFixture() {
2121 return async ( fixtureOptions : AppFixtureOptions , use : ( arg0 : Application ) => Promise < void > ) => {
2222 const { options, logsPath, logger, workerInfo } = fixtureOptions ;
2323
24- const app = createApp ( options ) ;
24+ const { workspacePath } = await setupWorkbenchEnvironment ( ) ;
25+ const app = createApp ( { ...options , workspacePath } ) ;
2526
2627 try {
27- // Setup Docker environment and copy configuration
28- await setupWorkbenchEnvironment ( ) ;
2928 await app . connectToExternalServer ( ) ;
3029
3130 // Workbench: Login to Posit Workbench
@@ -61,25 +60,30 @@ export function WorkbenchAppFixture() {
6160/**
6261 * Setup the complete Workbench environment: Docker container, configuration, and permissions
6362 */
64- async function setupWorkbenchEnvironment ( ) : Promise < void > {
63+ async function setupWorkbenchEnvironment ( ) : Promise < { workspacePath : string ; userDataDir : string } > {
64+ const TEST_DATA_PATH = join ( os . tmpdir ( ) , 'vscsmoke' ) ;
65+ const DEFAULT_WORKSPACE_PATH = join ( TEST_DATA_PATH , 'qa-example-content' ) ;
66+ const WORKBENCH_WORKSPACE_PATH = '/home/user1/qa-example-content/'
67+ const WORKBENCH_USER_DATA_DIR = '/home/user1/.positron-server/User/' ;
68+
6569 // Create workspace and settings directories
66- await runDockerCommand ( ' docker exec test mkdir -p /home/user1/qa-example-content/' , 'Create workspace directory' ) ;
67- await runDockerCommand ( ' docker exec test mkdir -p /home/user1/.positron-server/User/' , 'Create settings directory' ) ;
70+ await runDockerCommand ( ` docker exec test mkdir -p ${ WORKBENCH_WORKSPACE_PATH } ` , 'Create workspace directory' ) ;
71+ await runDockerCommand ( ` docker exec test mkdir -p ${ WORKBENCH_USER_DATA_DIR } ` , 'Create user settings directory' ) ;
6872
69- // Copy workspace to container
70- const TEST_DATA_PATH = join ( os . tmpdir ( ) , 'vscsmoke' ) ;
71- const WORKSPACE_PATH = join ( TEST_DATA_PATH , 'qa-example-content' ) ;
72- await runDockerCommand ( `docker cp ${ WORKSPACE_PATH } /. test:/home/user1/qa-example-content/` , 'Copy workspace to container' ) ;
73+ // Copy qa-example-content workspace to container
74+ await runDockerCommand ( `docker cp ${ DEFAULT_WORKSPACE_PATH } /. test:${ WORKBENCH_WORKSPACE_PATH } ` , 'Copy workspace to container' ) ;
7375
7476 // Copy settings to container
7577 await copyUserSettingsToContainer ( ) ;
7678 await copyKeyBindingsToContainer ( ) ;
7779
7880 // Fix permissions
79- await runDockerCommand ( 'docker exec test chown -R user1:user1g /home/user1/.positron-server/' , 'Set ownership of settings directory' ) ;
80- await runDockerCommand ( 'docker exec test chown -R user1 /home/user1/qa-example-content/' , 'Set ownership of workspace directory' ) ;
81- await runDockerCommand ( 'docker exec test chmod -R 755 /home/user1/.positron-server/User/' , 'Set permissions of settings directory' ) ;
82- await runDockerCommand ( 'docker exec test chmod -R 755 /home/user1/qa-example-content/' , 'Set permissions of workspace directory' ) ;
81+ await runDockerCommand ( `docker exec test chown -R user1:user1g ${ WORKBENCH_USER_DATA_DIR } ` , 'Set ownership of settings directory' ) ;
82+ await runDockerCommand ( `docker exec test chown -R user1 ${ WORKBENCH_WORKSPACE_PATH } ` , 'Set ownership of workspace directory' ) ;
83+ await runDockerCommand ( `docker exec test chmod -R 755 ${ WORKBENCH_USER_DATA_DIR } ` , 'Set permissions of settings directory' ) ;
84+ await runDockerCommand ( `docker exec test chmod -R 755 ${ WORKBENCH_WORKSPACE_PATH } ` , 'Set permissions of workspace directory' ) ;
85+
86+ return { workspacePath : WORKBENCH_WORKSPACE_PATH , userDataDir : WORKBENCH_USER_DATA_DIR } ;
8387}
8488
8589/**
0 commit comments