Skip to content
This repository was archived by the owner on Jul 16, 2025. It is now read-only.

Commit 8c6c30c

Browse files
OskarStarkclaude
andcommitted
test: simplify message ID tests to avoid testing Symfony UID internals
Replaced detailed AbstractUid method tests with a simple consistency check. We now only test: - The message ID implements the required interfaces - The ID remains consistent across multiple calls Removed tests for: - UUID format validation - Binary/Base32/Base58 conversions - DateTime timestamp validation These are Symfony UID library responsibilities, not ours to test. Also removed the PHPStan staticMethod.alreadyNarrowedType ignores since we no longer have assertIsString calls that trigger those warnings. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
1 parent 2a37f9f commit 8c6c30c

File tree

5 files changed

+16
-132
lines changed

5 files changed

+16
-132
lines changed

phpstan.dist.neon

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,4 @@ parameters:
1313
-
1414
message: '#no value type specified in iterable type array#'
1515
path: tests/*
16-
-
17-
identifier: staticMethod.alreadyNarrowedType
18-
paths:
19-
- tests/Platform/Message/AssistantMessageTest.php
20-
- tests/Platform/Message/SystemMessageTest.php
21-
- tests/Platform/Message/UserMessageTest.php
22-
- tests/Platform/Message/ToolCallMessageTest.php
2316

tests/Platform/Message/AssistantMessageTest.php

Lines changed: 4 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -93,39 +93,12 @@ public function messageIdImplementsRequiredInterfaces(): void
9393
}
9494

9595
#[Test]
96-
public function messageIdSupportsAbstractUidMethods(): void
96+
public function messageIdIsConsistent(): void
9797
{
9898
$message = new AssistantMessage('test');
99-
$id = $message->getId();
100-
101-
// Test that AbstractUid methods work
102-
self::assertIsString($id->toRfc4122());
103-
self::assertMatchesRegularExpression('/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i', $id->toRfc4122());
104-
105-
// Test other conversion methods
106-
self::assertIsString($id->toBinary());
107-
self::assertIsString($id->toBase32());
108-
self::assertIsString($id->toBase58());
109-
110-
// Verify format lengths
111-
self::assertEquals(16, \strlen($id->toBinary()));
112-
self::assertEquals(26, \strlen($id->toBase32()));
113-
self::assertEquals(22, \strlen($id->toBase58()));
114-
self::assertEquals(36, \strlen($id->toRfc4122()));
115-
}
116-
117-
#[Test]
118-
public function messageIdSupportsTimeBasedInterface(): void
119-
{
120-
$message = new AssistantMessage('test');
121-
$dateTime = $message->getId()->getDateTime();
122-
123-
self::assertInstanceOf(\DateTimeImmutable::class, $dateTime);
12499

125-
// The timestamp should be recent (within the last minute)
126-
$now = new \DateTimeImmutable();
127-
$diff = $now->getTimestamp() - $dateTime->getTimestamp();
128-
self::assertLessThanOrEqual(60, $diff);
129-
self::assertGreaterThanOrEqual(0, $diff);
100+
// The same message instance should always return the same ID
101+
self::assertSame($message->getId(), $message->getId());
102+
self::assertSame($message->id, $message->getId());
130103
}
131104
}

tests/Platform/Message/SystemMessageTest.php

Lines changed: 4 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -73,39 +73,12 @@ public function messageIdImplementsRequiredInterfaces(): void
7373
}
7474

7575
#[Test]
76-
public function messageIdSupportsAbstractUidMethods(): void
76+
public function messageIdIsConsistent(): void
7777
{
7878
$message = new SystemMessage('test');
79-
$id = $message->getId();
80-
81-
// Test that AbstractUid methods work
82-
self::assertIsString($id->toRfc4122());
83-
self::assertMatchesRegularExpression('/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i', $id->toRfc4122());
84-
85-
// Test other conversion methods
86-
self::assertIsString($id->toBinary());
87-
self::assertIsString($id->toBase32());
88-
self::assertIsString($id->toBase58());
89-
90-
// Verify format lengths
91-
self::assertEquals(16, \strlen($id->toBinary()));
92-
self::assertEquals(26, \strlen($id->toBase32()));
93-
self::assertEquals(22, \strlen($id->toBase58()));
94-
self::assertEquals(36, \strlen($id->toRfc4122()));
95-
}
96-
97-
#[Test]
98-
public function messageIdSupportsTimeBasedInterface(): void
99-
{
100-
$message = new SystemMessage('test');
101-
$dateTime = $message->getId()->getDateTime();
102-
103-
self::assertInstanceOf(\DateTimeImmutable::class, $dateTime);
10479

105-
// The timestamp should be recent (within the last minute)
106-
$now = new \DateTimeImmutable();
107-
$diff = $now->getTimestamp() - $dateTime->getTimestamp();
108-
self::assertLessThanOrEqual(60, $diff);
109-
self::assertGreaterThanOrEqual(0, $diff);
80+
// The same message instance should always return the same ID
81+
self::assertSame($message->getId(), $message->getId());
82+
self::assertSame($message->id, $message->getId());
11083
}
11184
}

tests/Platform/Message/ToolCallMessageTest.php

Lines changed: 4 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -80,41 +80,13 @@ public function messageIdImplementsRequiredInterfaces(): void
8080
}
8181

8282
#[Test]
83-
public function messageIdSupportsAbstractUidMethods(): void
83+
public function messageIdIsConsistent(): void
8484
{
8585
$toolCall = new ToolCall('foo', 'bar');
8686
$message = new ToolCallMessage($toolCall, 'test');
87-
$id = $message->getId();
88-
89-
// Test that AbstractUid methods work
90-
self::assertIsString($id->toRfc4122());
91-
self::assertMatchesRegularExpression('/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i', $id->toRfc4122());
92-
93-
// Test other conversion methods
94-
self::assertIsString($id->toBinary());
95-
self::assertIsString($id->toBase32());
96-
self::assertIsString($id->toBase58());
9787

98-
// Verify format lengths
99-
self::assertEquals(16, \strlen($id->toBinary()));
100-
self::assertEquals(26, \strlen($id->toBase32()));
101-
self::assertEquals(22, \strlen($id->toBase58()));
102-
self::assertEquals(36, \strlen($id->toRfc4122()));
103-
}
104-
105-
#[Test]
106-
public function messageIdSupportsTimeBasedInterface(): void
107-
{
108-
$toolCall = new ToolCall('foo', 'bar');
109-
$message = new ToolCallMessage($toolCall, 'test');
110-
$dateTime = $message->getId()->getDateTime();
111-
112-
self::assertInstanceOf(\DateTimeImmutable::class, $dateTime);
113-
114-
// The timestamp should be recent (within the last minute)
115-
$now = new \DateTimeImmutable();
116-
$diff = $now->getTimestamp() - $dateTime->getTimestamp();
117-
self::assertLessThanOrEqual(60, $diff);
118-
self::assertGreaterThanOrEqual(0, $diff);
88+
// The same message instance should always return the same ID
89+
self::assertSame($message->getId(), $message->getId());
90+
self::assertSame($message->id, $message->getId());
11991
}
12092
}

tests/Platform/Message/UserMessageTest.php

Lines changed: 4 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -123,39 +123,12 @@ public function messageIdImplementsRequiredInterfaces(): void
123123
}
124124

125125
#[Test]
126-
public function messageIdSupportsAbstractUidMethods(): void
126+
public function messageIdIsConsistent(): void
127127
{
128128
$message = new UserMessage(new Text('test'));
129-
$id = $message->getId();
130-
131-
// Test that AbstractUid methods work
132-
self::assertIsString($id->toRfc4122());
133-
self::assertMatchesRegularExpression('/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i', $id->toRfc4122());
134-
135-
// Test other conversion methods
136-
self::assertIsString($id->toBinary());
137-
self::assertIsString($id->toBase32());
138-
self::assertIsString($id->toBase58());
139-
140-
// Verify format lengths
141-
self::assertEquals(16, \strlen($id->toBinary()));
142-
self::assertEquals(26, \strlen($id->toBase32()));
143-
self::assertEquals(22, \strlen($id->toBase58()));
144-
self::assertEquals(36, \strlen($id->toRfc4122()));
145-
}
146-
147-
#[Test]
148-
public function messageIdSupportsTimeBasedInterface(): void
149-
{
150-
$message = new UserMessage(new Text('test'));
151-
$dateTime = $message->getId()->getDateTime();
152-
153-
self::assertInstanceOf(\DateTimeImmutable::class, $dateTime);
154129

155-
// The timestamp should be recent (within the last minute)
156-
$now = new \DateTimeImmutable();
157-
$diff = $now->getTimestamp() - $dateTime->getTimestamp();
158-
self::assertLessThanOrEqual(60, $diff);
159-
self::assertGreaterThanOrEqual(0, $diff);
130+
// The same message instance should always return the same ID
131+
self::assertSame($message->getId(), $message->getId());
132+
self::assertSame($message->id, $message->getId());
160133
}
161134
}

0 commit comments

Comments
 (0)