toContain($needle); } })->with([ 'storage resources' => [ 'app/Livewire/Storage/Resources.php', ['AuthorizesRequests', "authorize('update'", "authorize('view'"], ], 'postgres init script editor' => [ 'app/Livewire/Project/Database/InitScript.php', ['AuthorizesRequests', "authorize('update'"], ], 'execute container command' => [ 'app/Livewire/Project/Shared/ExecuteContainerCommand.php', ['AuthorizesRequests', "authorize('view'", "authorize('canAccessTerminal'"], ], 'terminal' => [ 'app/Livewire/Project/Shared/Terminal.php', ['AuthorizesRequests', "authorize('view'", "authorize('canAccessTerminal'"], ], ]); it('authorizes every volume backup form control', function (string $path, array $controlPatterns) { $source = file_get_contents(base_path($path)); foreach ($controlPatterns as $controlPattern) { expect($source)->toMatch($controlPattern); } })->with([ 'retention controls' => [ 'resources/views/livewire/project/shared/storages/volume-backups/retention.blade.php', [ '/]*type="submit")(?=[^>]*canGate="update")(?=[^>]*:canResource="\$backup")[^>]*>Save<\/x-forms\.button>/s', '/]*id="retentionAmountLocally")(?=[^>]*canGate="update")(?=[^>]*:canResource="\$backup")[^>]*\/\>/s', '/]*id="retentionDaysLocally")(?=[^>]*canGate="update")(?=[^>]*:canResource="\$backup")[^>]*\/\>/s', '/]*id="retentionMaxStorageLocally")(?=[^>]*canGate="update")(?=[^>]*:canResource="\$backup")[^>]*\/\>/s', '/]*id="retentionAmountS3")(?=[^>]*canGate="update")(?=[^>]*:canResource="\$backup")[^>]*\/\>/s', '/]*id="retentionDaysS3")(?=[^>]*canGate="update")(?=[^>]*:canResource="\$backup")[^>]*\/\>/s', '/]*id="retentionMaxStorageS3")(?=[^>]*canGate="update")(?=[^>]*:canResource="\$backup")[^>]*\/\>/s', ], ], 'S3 controls' => [ 'resources/views/livewire/project/shared/storages/volume-backups/s3.blade.php', [ '/]*type="submit")(?=[^>]*canGate="update")(?=[^>]*:canResource="\$backup")[^>]*>Save<\/x-forms\.button>/s', '/]*wire:click="toggleS3")(?=[^>]*canGate="update")(?=[^>]*:canResource="\$backup")[^>]*>Enable S3<\/x-forms\.button>/s', '/]*wire:click="toggleS3")(?=[^>]*canGate="update")(?=[^>]*:canResource="\$backup")[^>]*>Disable S3<\/x-forms\.button>/s', '/]*id="s3StorageId")(?=[^>]*canGate="update")(?=[^>]*:canResource="\$backup")[^>]*>/s', '/]*id="disableLocalBackup")(?=[^>]*instantSave)(?=[^>]*canGate="update")(?=[^>]*:canResource="\$backup")[^>]*\/\>/s', '/]*id="disableLocalBackup")(?=[^>]*disabled)(?=[^>]*canGate="update")(?=[^>]*:canResource="\$backup")[^>]*\/\>/s', ], ], ]);