Implement E2E proxy tests

This commit is contained in:
Matej Bačo
2025-09-12 21:19:36 +02:00
parent cf0838d75b
commit 636ce72e52
4 changed files with 117 additions and 11 deletions
@@ -543,12 +543,113 @@ class ProxyCustomServerTest extends Scope
public function testRuleVerification(): void
{
// TODO: Implement
// wrong-a-webapp.com
// webapp.com
// stage.webapp.com
// stage-wrong-cname.webapp.com
// stage-wrong-caa.webapp.com
// stage-correct-caa.webapp.com
// Site rule can verify
$setup = $this->setupSite();
$siteId = $setup['siteId'];
$rule = $this->createSiteRule('stage-site.webapp.com', $siteId);
\var_dump($rule);
$this->assertEquals(201, $rule['headers']['status-code']);
$this->assertEquals('verifying', $rule['body']['status']);
$this->assertEmpty($rule['body']['validationLogs']);
$this->cleanupRule($rule['body']['$id']);
$this->cleanupSite($siteId);
// Function rule can verify
$setup = $this->setupFunction();
$functionId = $setup['functionId'];
$rule = $this->createFunctionRule('stage-function.webapp.com', $functionId);
$this->assertEquals(201, $rule['headers']['status-code']);
$this->assertEquals('verifying', $rule['body']['status']);
$rule2 = $this->createAPIRule('stage-site.webapp.com');
$this->assertEquals(201, $rule2['headers']['status-code']);
$this->assertEquals('created', $rule2['body']['status']);
$this->assertStringContainsString('has incorrect A value', implode(' ', $rule2['body']['validationLogs']));
$this->cleanupRule($rule['body']['$id']);
$this->cleanupRule($rule2['body']['$id']);
$this->cleanupFunction($functionId);
// 3. Wrong A record fails to verify
$rule = $this->createAPIRule('wrong-a-webapp.com');
$this->assertEquals(201, $rule['headers']['status-code']);
$this->assertEquals('created', $rule['body']['status']);
$this->assertStringContainsString('has incorrect A value', implode(' ', $rule['body']['validationLogs']));
$ruleId = $rule['body']['$id'];
$updatedRule = $this->updateRuleVerification($ruleId);
$this->assertEquals(200, $updatedRule['headers']['status-code']);
$this->assertEquals('created', $updatedRule['body']['status']);
$this->assertStringContainsString('has incorrect A value', implode(' ', $updatedRule['body']['validationLogs']));
$this->cleanupRule($ruleId);
// 4. Correct A record can verify
$rule = $this->createAPIRule('webapp.com');
$this->assertEquals(201, $rule['headers']['status-code']);
$this->assertEquals('verifying', $rule['body']['status']);
$this->assertEmpty($rule['body']['validationLogs']);
$this->cleanupRule($rule['body']['$id']);
// 5. Correct CNAME record can verify (no CAA record)
$rule = $this->createAPIRule('stage.webapp.com');
$this->assertEquals(201, $rule['headers']['status-code']);
$this->assertEquals('verifying', $rule['body']['status']);
$this->assertEmpty($rule['body']['validationLogs']);
$this->cleanupRule($rule['body']['$id']);
// 6. Missing CNAME record fails to verify
$rule = $this->createAPIRule('stage-missing-cname.webapp.com');
$this->assertEquals(201, $rule['headers']['status-code']);
$this->assertEquals('created', $rule['body']['status']);
$this->assertStringContainsString('is missing CNAME record', implode(' ', $rule['body']['validationLogs']));
$ruleId = $rule['body']['$id'];
$updatedRule = $this->updateRuleVerification($ruleId);
$this->assertEquals(200, $updatedRule['headers']['status-code']);
$this->assertEquals('created', $updatedRule['body']['status']);
$this->assertStringContainsString('is missing CNAME record', implode(' ', $updatedRule['body']['validationLogs']));
$this->cleanupRule($ruleId);
// 7. Wrong CNAME record fails to verify
$rule = $this->createAPIRule('stage-wrong-cname.webapp.com');
$this->assertEquals(201, $rule['headers']['status-code']);
$this->assertEquals('created', $rule['body']['status']);
$this->assertStringContainsString('has incorrect CNAME value', implode(' ', $rule['body']['validationLogs']));
$ruleId = $rule['body']['$id'];
$updatedRule = $this->updateRuleVerification($ruleId);
$this->assertEquals(200, $updatedRule['headers']['status-code']);
$this->assertEquals('created', $updatedRule['body']['status']);
$this->assertStringContainsString('has incorrect CNAME value', implode(' ', $updatedRule['body']['validationLogs']));
$this->cleanupRule($ruleId);
// 8. Wrong CAA record fails to verify
$rule = $this->createAPIRule('stage-wrong-caa.webapp.com');
$this->assertEquals(201, $rule['headers']['status-code']);
$this->assertEquals('created', $rule['body']['status']);
$this->assertStringContainsString('has incorrect CAA value', implode(' ', $rule['body']['validationLogs']));
$ruleId = $rule['body']['$id'];
$updatedRule = $this->updateRuleVerification($ruleId);
$this->assertEquals(200, $updatedRule['headers']['status-code']);
$this->assertEquals('created', $updatedRule['body']['status']);
$this->assertStringContainsString('has incorrect CAA value', implode(' ', $updatedRule['body']['validationLogs']));
$this->cleanupRule($ruleId);
// 9. Correct CAA record can verify
$rule = $this->createAPIRule('stage-correct-caa.webapp.com');
$this->assertEquals(201, $rule['headers']['status-code']);
$this->assertEquals('verifying', $rule['body']['status']);
$this->cleanupRule($rule['body']['$id']);
}
}