mirror of
https://github.com/coollabsio/coolify.git
synced 2026-11-12 15:53:46 -04:00
- Remove tests that only check markup, CSS, static text, wire:key strings, framework behavior, copied app logic, or expect(true) - Replace source-grep and Reflection checks of security fixes with tests that run the real code (shell quoting, locked properties, 403 checks, webhook fork trust, log redaction, Sentinel token cleanup) - Assert response bodies and unchanged data on API error paths - Run the Traefik version job through handle() instead of private methods - Update stale tests for scheduled task props, the default Postgres image, and the disabled transfer link of unvalidated servers Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
58 lines
1.8 KiB
PHP
58 lines
1.8 KiB
PHP
<?php
|
|
|
|
test('parseDockerVolumeString correctly handles Windows paths with drive letters', function () {
|
|
$windowsVolume = 'C:\\host\\path:/container';
|
|
|
|
$result = parseDockerVolumeString($windowsVolume);
|
|
|
|
expect((string) $result['source'])->toBe('C:\\host\\path');
|
|
expect((string) $result['target'])->toBe('/container');
|
|
});
|
|
|
|
test('validateVolumeStringForInjection correctly handles Windows paths via parseDockerVolumeString', function () {
|
|
$windowsVolume = 'C:\\Users\\Data:/app/data';
|
|
|
|
expect(fn () => validateVolumeStringForInjection($windowsVolume))->not->toThrow(Exception::class);
|
|
});
|
|
|
|
test('validateVolumeStringForInjection rejects malicious Windows-like paths', function () {
|
|
$maliciousVolume = 'C:\\host\\`whoami`:/container';
|
|
|
|
expect(fn () => validateVolumeStringForInjection($maliciousVolume))
|
|
->toThrow(Exception::class);
|
|
});
|
|
|
|
test('validateDockerComposeForInjection handles Windows paths in compose files', function () {
|
|
$dockerComposeYaml = <<<'YAML'
|
|
services:
|
|
web:
|
|
image: nginx
|
|
volumes:
|
|
- C:\Users\Data:/app/data
|
|
YAML;
|
|
|
|
expect(fn () => validateDockerComposeForInjection($dockerComposeYaml))->not->toThrow(Exception::class);
|
|
});
|
|
|
|
test('validateDockerComposeForInjection rejects Windows paths with injection', function () {
|
|
$dockerComposeYaml = <<<'YAML'
|
|
services:
|
|
web:
|
|
image: nginx
|
|
volumes:
|
|
- C:\Users\$(whoami):/app/data
|
|
YAML;
|
|
|
|
expect(fn () => validateDockerComposeForInjection($dockerComposeYaml))
|
|
->toThrow(Exception::class);
|
|
});
|
|
|
|
test('Windows paths with complex paths and spaces are handled correctly', function () {
|
|
$windowsVolume = 'C:\\Program Files\\MyApp:/app';
|
|
|
|
$result = parseDockerVolumeString($windowsVolume);
|
|
|
|
expect((string) $result['source'])->toBe('C:\\Program Files\\MyApp');
|
|
expect((string) $result['target'])->toBe('/app');
|
|
});
|