diff --git a/src/Process/DockerProcessFactory.php b/src/Process/DockerProcessFactory.php index fca4721a..ed4d965a 100644 --- a/src/Process/DockerProcessFactory.php +++ b/src/Process/DockerProcessFactory.php @@ -41,7 +41,12 @@ public function create(ProcessInput $processInput): Process }, array_keys($processInput->getEnv()), $processInput->getEnv()); return new Process( - [...$this->baseComposeCommand($mounts, $env), 'runtime', $processInput->getExecutable(), ...$processInput->getArgs()], + [ + ...$this->baseComposeCommand($mounts, $env), + 'runtime', + $processInput->getExecutable(), + ...$processInput->getArgs() + ], $this->basePath, ['SOLUTION' => $processInput->getWorkingDirectory()], $processInput->getInput(), diff --git a/test/Process/DockerProcessFactoryTest.php b/test/Process/DockerProcessFactoryTest.php index 8ca14f4d..9cb8095b 100644 --- a/test/Process/DockerProcessFactoryTest.php +++ b/test/Process/DockerProcessFactoryTest.php @@ -38,7 +38,9 @@ public function testCreate(): void $input = new ProcessInput('php', [], __DIR__, []); $process = $factory->create($input); - static::assertSame("'/usr/local/bin/docker' 'compose' '-p' 'php8appreciate' '-f' '.docker/runtime/docker-compose.yml' 'run' '--rm' '-w' '/solution' 'runtime' 'php'", $process->getCommandLine()); + $cmd = "'/usr/local/bin/docker' 'compose' '-p' 'php8appreciate' '-f' '.docker/runtime/docker-compose.yml'"; + $cmd .= " 'run' '--rm' '-w' '/solution' 'runtime' 'php'"; + static::assertSame($cmd, $process->getCommandLine()); static::assertSame('/docker-dir', $process->getWorkingDirectory()); } @@ -54,7 +56,9 @@ public function testCreateMountsComposerCacheDirIfExecutableIsComposer(): void $input = new ProcessInput('composer', [], __DIR__, []); $process = $factory->create($input); - static::assertSame("'/usr/local/bin/docker' 'compose' '-p' 'php8appreciate' '-f' '.docker/runtime/docker-compose.yml' 'run' '--rm' '-w' '/solution' '-v' '/composer/cache/dir:/root/.composer/cache' 'runtime' 'composer'", $process->getCommandLine()); + $cmd = "'/usr/local/bin/docker' 'compose' '-p' 'php8appreciate' '-f' '.docker/runtime/docker-compose.yml'"; + $cmd .= " 'run' '--rm' '-w' '/solution' '-v' '/composer/cache/dir:/root/.composer/cache' 'runtime' 'composer'"; + static::assertSame($cmd, $process->getCommandLine()); static::assertSame('/docker-dir', $process->getWorkingDirectory()); } @@ -70,7 +74,9 @@ public function testCreateWithArgs(): void $input = new ProcessInput('php', ['one', 'two'], __DIR__, []); $process = $factory->create($input); - static::assertSame("'/usr/local/bin/docker' 'compose' '-p' 'php8appreciate' '-f' '.docker/runtime/docker-compose.yml' 'run' '--rm' '-w' '/solution' 'runtime' 'php' 'one' 'two'", $process->getCommandLine()); + $cmd = "'/usr/local/bin/docker' 'compose' '-p' 'php8appreciate' '-f' '.docker/runtime/docker-compose.yml'"; + $cmd .= "'run' '--rm' '-w' '/solution' 'runtime' 'php' 'one' 'two'"; + static::assertSame($cmd, $process->getCommandLine()); static::assertSame('/docker-dir', $process->getWorkingDirectory()); } @@ -86,7 +92,9 @@ public function testCreateWithEnv(): void $input = new ProcessInput('php', ['one', 'two'], __DIR__, ['SOME_VAR' => 'value']); $process = $factory->create($input); - static::assertSame("'/usr/local/bin/docker' 'compose' '-p' 'php8appreciate' '-f' '.docker/runtime/docker-compose.yml' 'run' '--rm' '-e SOME_VAR=value' '-w' '/solution' 'runtime' 'php' 'one' 'two'", $process->getCommandLine()); + $cmd = "'/usr/local/bin/docker' 'compose' '-p' 'php8appreciate' '-f' '.docker/runtime/docker-compose.yml'"; + $cmd .= " 'run' '--rm' '-e SOME_VAR=value' '-w' '/solution' 'runtime' 'php' 'one' 'two'"; + static::assertSame($cmd, $process->getCommandLine()); static::assertSame('/docker-dir', $process->getWorkingDirectory()); } @@ -102,7 +110,9 @@ public function testWithInput(): void $input = new ProcessInput('php', [], __DIR__, [], 'someinput'); $process = $factory->create($input); - static::assertSame("'/usr/local/bin/docker' 'compose' '-p' 'php8appreciate' '-f' '.docker/runtime/docker-compose.yml' 'run' '--rm' '-w' '/solution' 'runtime' 'php'", $process->getCommandLine()); + $cmd = "'/usr/local/bin/docker' 'compose' '-p' 'php8appreciate' '-f' '.docker/runtime/docker-compose.yml'"; + $cmd .= " 'run' '--rm' '-w' '/solution' 'runtime' 'php'"; + static::assertSame($cmd, $process->getCommandLine()); static::assertSame('someinput', $process->getInput()); } @@ -118,7 +128,9 @@ public function testSolutionDirectoryIsPassedAsEnvVar(): void $input = new ProcessInput('php', ['one', 'two'], __DIR__, ['SOME_VAR' => 'value']); $process = $factory->create($input); - static::assertSame("'/usr/local/bin/docker' 'compose' '-p' 'php8appreciate' '-f' '.docker/runtime/docker-compose.yml' 'run' '--rm' '-e SOME_VAR=value' '-w' '/solution' 'runtime' 'php' 'one' 'two'", $process->getCommandLine()); + $cmd = "'/usr/local/bin/docker' 'compose' '-p' 'php8appreciate' '-f' '.docker/runtime/docker-compose.yml'"; + $cmd .= " 'run' '--rm' '-e SOME_VAR=value' '-w' '/solution' 'runtime' 'php' 'one' 'two'"; + static::assertSame($cmd, $process->getCommandLine()); static::assertSame('/docker-dir', $process->getWorkingDirectory()); static::assertSame(['SOLUTION' => __DIR__], $process->getEnv()); }