28 lines
1.1 KiB
PHP
28 lines
1.1 KiB
PHP
<?php
|
|
|
|
namespace Tests\Unit\Deployment;
|
|
|
|
use PHPUnit\Framework\TestCase;
|
|
|
|
class DingTalkCallbackNginxTest extends TestCase
|
|
{
|
|
public function test_plain_http_is_limited_to_the_registered_dingtalk_callback(): void
|
|
{
|
|
$config = file_get_contents(base_path('deploy/host-nginx-8442-dingtalk.conf'));
|
|
|
|
$this->assertStringContainsString('error_page 497 = @plain_http_request;', $config);
|
|
$this->assertStringContainsString('if ($uri != /auth/dingtalk/callback)', $config);
|
|
$this->assertStringContainsString('proxy_set_header X-Forwarded-Proto http;', $config);
|
|
$this->assertStringContainsString('return 308 https://218.93.190.75:8442$request_uri;', $config);
|
|
}
|
|
|
|
public function test_configuration_script_validates_and_restores_on_failure(): void
|
|
{
|
|
$script = file_get_contents(base_path('deploy/configure-dingtalk-callback.sh'));
|
|
|
|
$this->assertStringContainsString('nginx -t', $script);
|
|
$this->assertStringContainsString('the previous configuration was restored', $script);
|
|
$this->assertStringContainsString('DINGTALK_HTTP_CALLBACK_READY=', $script);
|
|
}
|
|
}
|