-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathMediaWikiHostsControllerTest.php
More file actions
64 lines (53 loc) · 2.2 KB
/
MediaWikiHostsControllerTest.php
File metadata and controls
64 lines (53 loc) · 2.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<?php
namespace Tests\Routes\Backend;
use App\Wiki;
use App\WikiDb;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
class MediaWikiHostsControllerTest extends TestCase {
use RefreshDatabase;
protected $route = '/backend/getWikiHostsForDomain';
public function testSuccess() {
$expectedHosts = [
'backend' => 'mediawiki-143-app-backend.default.svc.cluster.local',
'web' => 'mediawiki-143-app-web.default.svc.cluster.local',
'api' => 'mediawiki-143-app-api.default.svc.cluster.local',
'alpha' => 'mediawiki-143-app-alpha.default.svc.cluster.local',
];
$this->createWiki('test139.wikibase.cloud', 'mw1.39-wbs1');
$this->createWiki('test143.wikibase.cloud', 'mw1.43-wbs1');
$this->getJson("$this->route?domain=test143.wikibase.cloud")
->assertStatus(200)
->assertHeader('x-backend-host', $expectedHosts['backend'])
->assertHeader('x-web-host', $expectedHosts['web'])
->assertHeader('x-api-host', $expectedHosts['api'])
->assertHeader('x-alpha-host', $expectedHosts['alpha'])
->assertJson([
'domain' => 'test143.wikibase.cloud',
'backend-host' => $expectedHosts['backend'],
'web-host' => $expectedHosts['web'],
'api-host' => $expectedHosts['api'],
'alpha-host' => $expectedHosts['alpha'],
]);
}
public function testDomainNotfound() {
$this->getJson("$this->route?domain=notfound.wikibase.cloud")
->assertStatus(404);
}
public function testUnknownDbVersion() {
$this->createWiki('test.wikibase.cloud', 'unknownVersion');
$this->getJson("$this->route?domain=test.wikibase.cloud")
->assertStatus(500);
}
private function createWiki(string $domain, string $version) {
$wiki = Wiki::factory()->create(['domain' => $domain]);
WikiDb::create([
'name' => $domain,
'user' => 'someUser',
'password' => 'somePassword',
'version' => $version,
'prefix' => 'somePrefix',
'wiki_id' => $wiki->id,
]);
}
}