toBeTrue() ->and($manualProfile['filePath'])->toBe($scheduledProfile['filePath']) ->and($manualProfile['laneBindings'])->toBe(['heavy-governance']) ->and($scheduledProfile['scheduleCron'])->toBe('17 4 * * 1-5') ->and($workflowContents)->toContain('workflow_dispatch:') ->and($workflowContents)->toContain('schedule:') ->and($workflowContents)->toContain('17 4 * * 1-5') ->and($workflowContents)->toContain("vars.TENANTATLAS_ENABLE_HEAVY_GOVERNANCE_SCHEDULE == '1'") ->and($workflowContents)->toContain('workflow_id=heavy-governance-manual') ->and($workflowContents)->toContain('workflow_id=heavy-governance-scheduled') ->and($workflowContents)->toContain('./scripts/platform-test-lane heavy-governance --workflow-id=${{ steps.context.outputs.workflow_id }} --trigger-class=${{ steps.context.outputs.trigger_class }}') ->and($workflowContents)->toContain('./scripts/platform-test-artifacts heavy-governance .gitea-artifacts/heavy-governance --workflow-id=${{ steps.context.outputs.workflow_id }} --trigger-class=${{ steps.context.outputs.trigger_class }}') ->and($workflowContents)->not->toContain('pull_request:', './scripts/platform-test-lane browser'); }); it('keeps browser manual and scheduled execution isolated from pull-request and confidence validation', function (): void { $manualProfile = TestLaneManifest::workflowProfile('browser-manual'); $scheduledProfile = TestLaneManifest::workflowProfile('browser-scheduled'); $workflowContents = (string) file_get_contents(repo_path($manualProfile['filePath'])); expect(file_exists(repo_path($manualProfile['filePath'])))->toBeTrue() ->and($manualProfile['filePath'])->toBe($scheduledProfile['filePath']) ->and($manualProfile['laneBindings'])->toBe(['browser']) ->and($scheduledProfile['scheduleCron'])->toBe('43 4 * * 1-5') ->and($workflowContents)->toContain('workflow_dispatch:') ->and($workflowContents)->toContain('schedule:') ->and($workflowContents)->toContain('43 4 * * 1-5') ->and($workflowContents)->toContain("vars.TENANTATLAS_ENABLE_BROWSER_SCHEDULE == '1'") ->and($workflowContents)->toContain('workflow_id=browser-manual') ->and($workflowContents)->toContain('workflow_id=browser-scheduled') ->and($workflowContents)->toContain('./scripts/platform-test-lane browser --workflow-id=${{ steps.context.outputs.workflow_id }} --trigger-class=${{ steps.context.outputs.trigger_class }}') ->and($workflowContents)->toContain('./scripts/platform-test-artifacts browser .gitea-artifacts/browser --workflow-id=${{ steps.context.outputs.workflow_id }} --trigger-class=${{ steps.context.outputs.trigger_class }}') ->and($workflowContents)->not->toContain('pull_request:', './scripts/platform-test-lane confidence'); });