Skip to content

Commit c28c8d5

Browse files
authored
Standardise Role case names (#116)
* Standardize `Role` case names across enums, annotations, and tests. * Update minimum code coverage threshold to 92%
1 parent b8ef8b7 commit c28c8d5

File tree

7 files changed

+39
-39
lines changed

7 files changed

+39
-39
lines changed

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@
8080
"pint --test",
8181
"rector --dry-run"
8282
],
83-
"test:unit": "pest --ci --coverage --min=91.7",
83+
"test:unit": "pest --ci --coverage --min=92",
8484
"test:types": "phpstan",
8585
"test": [
8686
"@test:lint",

src/Enums/Role.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,6 @@
66

77
enum Role: string
88
{
9-
case ASSISTANT = 'assistant';
10-
case USER = 'user';
9+
case Assistant = 'assistant';
10+
case User = 'user';
1111
}

src/Response.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ class Response
2222

2323
protected function __construct(
2424
protected Content $content,
25-
protected Role $role = Role::USER,
25+
protected Role $role = Role::User,
2626
protected bool $isError = false,
2727
) {
2828
//
@@ -127,7 +127,7 @@ public static function image(): Content
127127

128128
public function asAssistant(): static
129129
{
130-
return new static($this->content, Role::ASSISTANT, $this->isError);
130+
return new static($this->content, Role::Assistant, $this->isError);
131131
}
132132

133133
public function isNotification(): bool

tests/Unit/Methods/ListResourcesTest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ public function shouldRegister(Request $request): bool
143143
it('includes annotations when a resource has annotations', function (): void {
144144
$listResources = new ListResources;
145145

146-
$resource = new #[Audience([Role::USER, Role::ASSISTANT])]
146+
$resource = new #[Audience([Role::User, Role::Assistant])]
147147
#[Priority(0.8)]
148148
#[LastModified('2025-01-12T15:00:58Z')]
149149
class extends Resource
@@ -205,7 +205,7 @@ public function handle(): string
205205
it('handles mixed resources with and without annotations', function (): void {
206206
$listResources = new ListResources;
207207

208-
$annotatedResource = new #[Audience(Role::USER)]
208+
$annotatedResource = new #[Audience(Role::User)]
209209
#[Priority(0.5)]
210210
class extends Resource
211211
{

tests/Unit/Resources/ResourceAnnotationsTest.php

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ public function handle(): Response
2727
});
2828

2929
it('includes audience annotation in resource', function (): void {
30-
$resource = new #[Audience([Role::USER, Role::ASSISTANT])] class extends Resource
30+
$resource = new #[Audience([Role::User, Role::Assistant])] class extends Resource
3131
{
3232
public function description(): string
3333
{
@@ -84,7 +84,7 @@ public function handle(): Response
8484
});
8585

8686
it('includes multiple annotations in resource', function (): void {
87-
$resource = new #[Audience(Role::USER)] #[Priority(1.0)] #[LastModified('2025-01-12T15:00:58Z')] class extends Resource
87+
$resource = new #[Audience(Role::User)] #[Priority(1.0)] #[LastModified('2025-01-12T15:00:58Z')] class extends Resource
8888
{
8989
public function description(): string
9090
{
@@ -107,7 +107,7 @@ public function handle(): Response
107107
});
108108

109109
it('includes annotations in resource toArray', function (): void {
110-
$resource = new #[Audience(Role::USER)] #[Priority(0.5)] class extends Resource
110+
$resource = new #[Audience(Role::User)] #[Priority(0.5)] class extends Resource
111111
{
112112
public function description(): string
113113
{
@@ -273,7 +273,7 @@ public function handle(): Response
273273
});
274274

275275
it('accepts only user role', function (): void {
276-
$resource = new #[Audience(Role::USER)] class extends Resource
276+
$resource = new #[Audience(Role::User)] class extends Resource
277277
{
278278
public function description(): string
279279
{
@@ -290,7 +290,7 @@ public function handle(): Response
290290
});
291291

292292
it('accepts only an assistant role', function (): void {
293-
$resource = new #[Audience(Role::ASSISTANT)] class extends Resource
293+
$resource = new #[Audience(Role::Assistant)] class extends Resource
294294
{
295295
public function description(): string
296296
{

tests/Unit/ResponseTest.php

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -13,37 +13,37 @@
1313
it('creates a notification response', function (): void {
1414
$response = Response::notification('test.method', ['key' => 'value']);
1515

16-
expect($response->content())->toBeInstanceOf(Notification::class);
17-
expect($response->isNotification())->toBeTrue();
18-
expect($response->isError())->toBeFalse();
19-
expect($response->role())->toBe(Role::USER);
16+
expect($response->content())->toBeInstanceOf(Notification::class)
17+
->and($response->isNotification())->toBeTrue()
18+
->and($response->isError())->toBeFalse()
19+
->and($response->role())->toBe(Role::User);
2020
});
2121

2222
it('creates a text response', function (): void {
2323
$response = Response::text('Hello world');
2424

25-
expect($response->content())->toBeInstanceOf(Text::class);
26-
expect($response->isNotification())->toBeFalse();
27-
expect($response->isError())->toBeFalse();
28-
expect($response->role())->toBe(Role::USER);
25+
expect($response->content())->toBeInstanceOf(Text::class)
26+
->and($response->isNotification())->toBeFalse()
27+
->and($response->isError())->toBeFalse()
28+
->and($response->role())->toBe(Role::User);
2929
});
3030

3131
it('creates a blob response', function (): void {
3232
$response = Response::blob('binary content');
3333

34-
expect($response->content())->toBeInstanceOf(Blob::class);
35-
expect($response->isNotification())->toBeFalse();
36-
expect($response->isError())->toBeFalse();
37-
expect($response->role())->toBe(Role::USER);
34+
expect($response->content())->toBeInstanceOf(Blob::class)
35+
->and($response->isNotification())->toBeFalse()
36+
->and($response->isError())->toBeFalse()
37+
->and($response->role())->toBe(Role::User);
3838
});
3939

4040
it('creates an error response', function (): void {
4141
$response = Response::error('Something went wrong');
4242

43-
expect($response->content())->toBeInstanceOf(Text::class);
44-
expect($response->isNotification())->toBeFalse();
45-
expect($response->isError())->toBeTrue();
46-
expect($response->role())->toBe(Role::USER);
43+
expect($response->content())->toBeInstanceOf(Text::class)
44+
->and($response->isNotification())->toBeFalse()
45+
->and($response->isError())->toBeTrue()
46+
->and($response->role())->toBe(Role::User);
4747
});
4848

4949
it('throws exception for audio method', function (): void {
@@ -62,28 +62,28 @@
6262
$response = Response::text('Original message');
6363
$assistantResponse = $response->asAssistant();
6464

65-
expect($assistantResponse->content())->toBeInstanceOf(Text::class);
66-
expect($assistantResponse->role())->toBe(Role::ASSISTANT);
67-
expect($assistantResponse->isError())->toBeFalse();
65+
expect($assistantResponse->content())->toBeInstanceOf(Text::class)
66+
->and($assistantResponse->role())->toBe(Role::Assistant)
67+
->and($assistantResponse->isError())->toBeFalse();
6868
});
6969

7070
it('preserves error state when converting to assistant role', function (): void {
7171
$response = Response::error('Error message');
7272
$assistantResponse = $response->asAssistant();
7373

74-
expect($assistantResponse->content())->toBeInstanceOf(Text::class);
75-
expect($assistantResponse->role())->toBe(Role::ASSISTANT);
76-
expect($assistantResponse->isError())->toBeTrue();
74+
expect($assistantResponse->content())->toBeInstanceOf(Text::class)
75+
->and($assistantResponse->role())->toBe(Role::Assistant)
76+
->and($assistantResponse->isError())->toBeTrue();
7777
});
7878

7979
it('creates a json response', function (): void {
8080
$data = ['key' => 'value', 'number' => 123];
8181
$response = Response::json($data);
8282

83-
expect($response->content())->toBeInstanceOf(Text::class);
84-
expect($response->isNotification())->toBeFalse();
85-
expect($response->isError())->toBeFalse();
86-
expect($response->role())->toBe(Role::USER);
83+
expect($response->content())->toBeInstanceOf(Text::class)
84+
->and($response->isNotification())->toBeFalse()
85+
->and($response->isError())->toBeFalse()
86+
->and($response->role())->toBe(Role::User);
8787

8888
$content = $response->content();
8989
expect((string) $content)->toBe(json_encode($data, JSON_THROW_ON_ERROR | JSON_PRETTY_PRINT));

tests/Unit/Tools/ToolAnnotationsTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ public function handle(Request $request): Response
2828

2929
it('rejects resource annotations on tools', function (): void {
3030
expect(function (): void {
31-
$tool = new #[Audience(Role::ASSISTANT)] class extends Tool
31+
$tool = new #[Audience(Role::Assistant)] class extends Tool
3232
{
3333
public function handle(Request $request): Response
3434
{

0 commit comments

Comments
 (0)