Skip to content

Commit f2851df

Browse files
committed
Fix tests
1 parent d2c8de5 commit f2851df

2 files changed

Lines changed: 25 additions & 24 deletions

File tree

src/DNS/Zone/Resolver.php

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -44,14 +44,7 @@ public static function lookup(Message $query, Zone $zone): Message
4444
if (empty($records)) {
4545
// SOA is stored separately; if querying SOA at the zone apex, return it
4646
if ($question->type === Record::TYPE_SOA && $question->name === $zone->name) {
47-
return Message::response(
48-
header: $query->header,
49-
responseCode: Message::RCODE_NOERROR,
50-
questions: $query->questions,
51-
answers: [$zone->soa],
52-
authoritative: true,
53-
recursionAvailable: false
54-
);
47+
return self::soaApexResponse($query, $zone);
5548
}
5649

5750
return Message::response(
@@ -171,14 +164,7 @@ private static function handleExactMatch(array $records, Message $query, Zone $z
171164
if ($isAuthoritative) {
172165
// SOA is stored separately in Zone; handle SOA queries at the zone apex
173166
if ($question->type === Record::TYPE_SOA && $question->name === $zone->name) {
174-
return Message::response(
175-
header: $query->header,
176-
responseCode: Message::RCODE_NOERROR,
177-
questions: $query->questions,
178-
answers: [$zone->soa],
179-
authoritative: true,
180-
recursionAvailable: false
181-
);
167+
return self::soaApexResponse($query, $zone);
182168
}
183169

184170
// Path E1: Exact match of type
@@ -239,6 +225,21 @@ private static function handleExactMatch(array $records, Message $query, Zone $z
239225
}
240226
}
241227

228+
/**
229+
* Build an authoritative SOA answer for the zone apex.
230+
*/
231+
private static function soaApexResponse(Message $query, Zone $zone): Message
232+
{
233+
return Message::response(
234+
header: $query->header,
235+
responseCode: Message::RCODE_NOERROR,
236+
questions: $query->questions,
237+
answers: [$zone->soa],
238+
authoritative: true,
239+
recursionAvailable: false
240+
);
241+
}
242+
242243
/**
243244
* Randomize RRSet order for load balancing.
244245
*

tests/e2e/DNS/ClientTest.php

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -213,16 +213,16 @@ public function testSoaRecords(): void
213213
$response = $client->query(Message::query(
214214
new Question('appwrite.io', Record::TYPE_SOA)
215215
));
216-
$this->assertCount(0, $response->answers);
216+
$this->assertCount(0, $response->authority);
217217

218-
$authority = $response->authority;
219-
$this->assertCount(1, $authority);
220-
$this->assertSame('appwrite.io', $authority[0]->name);
221-
$this->assertSame(Record::CLASS_IN, $authority[0]->class);
222-
$this->assertSame(30, $authority[0]->ttl);
223-
$this->assertSame(Record::TYPE_SOA, $authority[0]->type);
218+
$answers = $response->answers;
219+
$this->assertCount(1, $answers);
220+
$this->assertSame('appwrite.io', $answers[0]->name);
221+
$this->assertSame(Record::CLASS_IN, $answers[0]->class);
222+
$this->assertSame(30, $answers[0]->ttl);
223+
$this->assertSame(Record::TYPE_SOA, $answers[0]->type);
224224

225-
$rdata = $authority[0]->rdata;
225+
$rdata = $answers[0]->rdata;
226226
$this->assertStringContainsString('ns1.appwrite.zone', $rdata);
227227
$this->assertStringContainsString('team.appwrite.io', $rdata);
228228
$this->assertStringContainsString('1 7200 1800 1209600 3600', $rdata);

0 commit comments

Comments
 (0)