forked from nuwave/lighthouse
-
Notifications
You must be signed in to change notification settings - Fork 0
/
_ide_helper.php
161 lines (145 loc) · 4.14 KB
/
_ide_helper.php
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
<?php declare(strict_types=1);
namespace Illuminate\Testing;
use Mockery\MockInterface;
use Nuwave\Lighthouse\Subscriptions\Contracts\Broadcaster;
use PHPUnit\Framework\TestCase;
class TestResponse
{
/**
* Assert the response contains an error with a matching message.
*
* @param \Throwable $error the expected error
*
* @return $this
*/
public function assertGraphQLError(\Throwable $error): self
{
return $this;
}
/**
* Assert the response contains an error with the given message.
*
* @param string $message the expected error message
*
* @return $this
*/
public function assertGraphQLErrorMessage(string $message): self
{
return $this;
}
/**
* Assert the response contains an error with the given debug message.
*
* Requires the config `lighthouse.debug` to include the option \GraphQL\Error\DebugFlag::INCLUDE_DEBUG_MESSAGE.
*
* @param string $message the expected debug message
*
* @return $this
*/
public function assertGraphQLDebugMessage(string $message): self
{
return $this;
}
/**
* Assert the response contains no errors.
*
* @return $this
*/
public function assertGraphQLErrorFree(): self
{
return $this;
}
/**
* Assert the returned result contains exactly the given validation keys.
*
* @param array<string> $keys the validation keys the result should have
*
* @return $this
*/
public function assertGraphQLValidationKeys(array $keys): self
{
return $this;
}
/**
* Assert a given validation error is present in the response.
*
* @param string $key the validation key that should be present
* @param string $message the expected validation message
*
* @return $this
*/
public function assertGraphQLValidationError(string $key, string $message): self
{
return $this;
}
/**
* Assert no validation errors are present in the response.
*
* @return $this
*/
public function assertGraphQLValidationPasses(): self
{
return $this;
}
/**
* Assert current user is authorized to join a subscription.
*
* @param \PHPUnit\Framework\TestCase $testClassInstance usually $this when calling this from a test class
*
* @return $this
*/
public function assertGraphQLSubscriptionAuthorized(TestCase $testClassInstance): self
{
return $this;
}
/**
* Assert current user is NOT authorized to join a subscription.
*
* @param \PHPUnit\Framework\TestCase $testClassInstance usually $this when calling this from a test class
*
* @return $this
*/
public function assertGraphQLSubscriptionNotAuthorized(TestCase $testClassInstance): self
{
return $this;
}
/**
* For cases where you need more control over your broadcast assertions.
*
* @see \Nuwave\Lighthouse\Testing\TestResponseMixin::assertGraphQLBroadcasted
* @see \Nuwave\Lighthouse\Testing\TestResponseMixin::assertGraphQLNotBroadcasted
*
* @return \Mockery\MockInterface&\Nuwave\Lighthouse\Subscriptions\Contracts\Broadcaster
*/
public function graphQLSubscriptionMock() // @phpstan-ignore-line invalid return type?
{
$mock = \Mockery::mock(Broadcaster::class);
assert($mock instanceof Broadcaster && $mock instanceof MockInterface);
return $mock;
}
/** Get the channel name from a subscription query. */
public function graphQLSubscriptionChannelName(): string
{
return '';
}
/**
* Assert the subscription received the given broadcasts.
*
* @param array<int, array<string, mixed>> $data the broadcast pattern that you are expecting
*
* @return $this
*/
public function assertGraphQLBroadcasted(array $data): self
{
return $this;
}
/**
* Assert the subscription received no broadcast.
*
* @return $this
*/
public function assertGraphQLNotBroadcasted(): self
{
return $this;
}
}