Skip to content

Commit 41c1f59

Browse files
authored
Merge pull request #142 from nicklaw5/v7
v7.0.0: Endpoint Coverage
2 parents 7b10a2a + d6e16f7 commit 41c1f59

19 files changed

+756
-67
lines changed

.github/workflows/test.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ jobs:
1515

1616
strategy:
1717
matrix:
18-
php: ['7.4', '8.0']
18+
php: ['7.4', '8.0', '8.1']
1919

2020
steps:
2121
- uses: actions/checkout@v2

.gitignore

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,6 @@ composer-test.lock
44
vendor/
55
.idea
66
.DS_STORE
7-
.php_cs.cache
7+
.php-cs-fixer.cache
88
.phpunit.result.cache
9-
composer.lock
9+
composer.lock

.php_cs.dist .php-cs-fixer.dist.php

+3-2
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,9 @@
55
->in('test/')
66
;
77

8-
return PhpCsFixer\Config::create()
9-
->setRules([
8+
$config = new PhpCsFixer\Config();
9+
10+
return $config->setRules([
1011
'@PSR2' => true,
1112
'@Symfony' => true,
1213
'phpdoc_annotation_without_dot' => false,

Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
test: cs-check test-phpunit test-phpspec
44

55
cs-check:
6-
vendor/bin/php-cs-fixer fix --diff --diff-format=udiff --dry-run
6+
vendor/bin/php-cs-fixer fix --diff --dry-run
77

88
test-phpunit:
99
vendor/bin/phpunit

composer.json

+3-3
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,9 @@
3131
"guzzlehttp/guzzle": "~6.0|~7.0"
3232
},
3333
"require-dev": {
34-
"friendsofphp/php-cs-fixer": "^2.13",
35-
"phpspec/phpspec": "^6.1",
36-
"phpunit/phpunit": "^8.5"
34+
"friendsofphp/php-cs-fixer": "^3.10",
35+
"phpspec/phpspec": "^7.2",
36+
"phpunit/phpunit": "^9.5"
3737
},
3838
"autoload": {
3939
"psr-4": {

spec/TwitchApi/Resources/ChatApiSpec.php

+48
Original file line numberDiff line numberDiff line change
@@ -57,4 +57,52 @@ function it_should_get_global_chat_badges(RequestGenerator $requestGenerator, Re
5757
$requestGenerator->generate('GET', 'chat/badges/global', 'TEST_TOKEN', [], [])->willReturn($request);
5858
$this->getGlobalChatBadges('TEST_TOKEN')->shouldBe($response);
5959
}
60+
61+
function it_should_get_chat_settings(RequestGenerator $requestGenerator, Request $request, Response $response)
62+
{
63+
$requestGenerator->generate('GET', 'chat/settings', 'TEST_TOKEN', [['key' => 'broadcaster_id', 'value' => '123']], [])->willReturn($request);
64+
$this->getChatSettings('TEST_TOKEN', '123')->shouldBe($response);
65+
}
66+
67+
function it_should_get_chat_settings_with_moderator_id(RequestGenerator $requestGenerator, Request $request, Response $response)
68+
{
69+
$requestGenerator->generate('GET', 'chat/settings', 'TEST_TOKEN', [['key' => 'broadcaster_id', 'value' => '123'], ['key' => 'moderator_id', 'value' => '456']], [])->willReturn($request);
70+
$this->getChatSettings('TEST_TOKEN', '123', '456')->shouldBe($response);
71+
}
72+
73+
function it_should_update_chat_settings_with_one_setting(RequestGenerator $requestGenerator, Request $request, Response $response)
74+
{
75+
$requestGenerator->generate('PATCH', 'chat/settings', 'TEST_TOKEN', [['key' => 'broadcaster_id', 'value' => '123'], ['key' => 'moderator_id', 'value' => '456']], [['key' => 'emote_mode', 'value' => true]])->willReturn($request);
76+
$this->updateChatSettings('TEST_TOKEN', '123', '456', ['emote_mode' => true])->shouldBe($response);
77+
}
78+
79+
function it_should_update_chat_settings_with_multiple_settings(RequestGenerator $requestGenerator, Request $request, Response $response)
80+
{
81+
$requestGenerator->generate('PATCH', 'chat/settings', 'TEST_TOKEN', [['key' => 'broadcaster_id', 'value' => '123'], ['key' => 'moderator_id', 'value' => '456']], [['key' => 'emote_mode', 'value' => true], ['key' => 'slow_mode_wait_time', 'value' => 10]])->willReturn($request);
82+
$this->updateChatSettings('TEST_TOKEN', '123', '456', ['emote_mode' => true, 'slow_mode_wait_time' => 10])->shouldBe($response);
83+
}
84+
85+
function it_should_send_a_chat_announcement(RequestGenerator $requestGenerator, Request $request, Response $response)
86+
{
87+
$requestGenerator->generate('POST', 'chat/announcements', 'TEST_TOKEN', [['key' => 'broadcaster_id', 'value' => '123'], ['key' => 'moderator_id', 'value' => '456']], [['key' => 'message', 'value' => 'Hello World']])->willReturn($request);
88+
$this->sendChatAnnouncement('TEST_TOKEN', '123', '456', 'Hello World')->shouldBe($response);
89+
}
90+
91+
function it_should_send_a_chat_announcement_with_a_color(RequestGenerator $requestGenerator, Request $request, Response $response)
92+
{
93+
$requestGenerator->generate('POST', 'chat/announcements', 'TEST_TOKEN', [['key' => 'broadcaster_id', 'value' => '123'], ['key' => 'moderator_id', 'value' => '456']], [['key' => 'message', 'value' => 'Hello World'], ['key' => 'color', 'value' => 'red']])->willReturn($request);
94+
$this->sendChatAnnouncement('TEST_TOKEN', '123', '456', 'Hello World', 'red')->shouldBe($response);
95+
}
96+
97+
function it_should_get_a_users_chat_color(RequestGenerator $requestGenerator, Request $request, Response $response)
98+
{
99+
$requestGenerator->generate('GET', 'chat/color', 'TEST_TOKEN', [['key' => 'user_id', 'value' => '123']], [])->willReturn($request);
100+
$this->getUserChatColor('TEST_TOKEN', '123')->shouldBe($response);
101+
}
102+
103+
function it_should_update_a_users_chat_color(RequestGenerator $requestGenerator, Request $request, Response $response)
104+
{
105+
$requestGenerator->generate('PUT', 'chat/color', 'TEST_TOKEN', [['key' => 'user_id', 'value' => '123'], ['key' => 'color', 'value' => 'red']], [])->willReturn($request);
106+
$this->updateUserChatColor('TEST_TOKEN', '123', 'red')->shouldBe($response);
107+
}
60108
}

spec/TwitchApi/Resources/EventSubApiSpec.php

+37-1
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,12 @@ function it_should_get_event_sub_subscription_with_type(RequestGenerator $reques
5555
$this->getEventSubSubscription('TEST_TOKEN', null, 'channel.update')->shouldBe($response);
5656
}
5757

58+
function it_should_get_event_sub_subscription_with_user_id(RequestGenerator $requestGenerator, Request $request, Response $response)
59+
{
60+
$requestGenerator->generate('GET', 'eventsub/subscriptions', 'TEST_TOKEN', [['key' => 'user_id', 'value' => '789']], [])->willReturn($request);
61+
$this->getEventSubSubscription('TEST_TOKEN', null, null, null, '789')->shouldBe($response);
62+
}
63+
5864
function it_should_get_event_sub_subscription_with_after(RequestGenerator $requestGenerator, Request $request, Response $response)
5965
{
6066
$requestGenerator->generate('GET', 'eventsub/subscriptions', 'TEST_TOKEN', [['key' => 'after', 'value' => 'abc']], [])->willReturn($request);
@@ -249,7 +255,37 @@ function it_should_subscribe_to_user_update(RequestGenerator $requestGenerator,
249255

250256
function it_should_subscribe_to_extension_bits_transaction_create(RequestGenerator $requestGenerator, Request $request, Response $response)
251257
{
252-
$this->createEventSubSubscription('extension.bits_transaction.create', 'beta', ['extension_client_id' => 'deadbeef'], $requestGenerator)->willReturn($request);
258+
$this->createEventSubSubscription('extension.bits_transaction.create', '1', ['extension_client_id' => 'deadbeef'], $requestGenerator)->willReturn($request);
253259
$this->subscribeToExtensionBitsTransactionCreate($this->bearer, $this->secret, $this->callback, 'deadbeef')->shouldBe($response);
254260
}
261+
262+
function it_should_subscribe_to_user_authorization_revoke(RequestGenerator $requestGenerator, Request $request, Response $response)
263+
{
264+
$this->createEventSubSubscription('user.authorization.revoke', '1', ['client_id' => '12345'], $requestGenerator)->willReturn($request);
265+
$this->subscribeToUserAuthorizationRevoke($this->bearer, $this->secret, $this->callback, '12345')->shouldBe($response);
266+
}
267+
268+
function it_should_subscribe_to_user_authorization_grant(RequestGenerator $requestGenerator, Request $request, Response $response)
269+
{
270+
$this->createEventSubSubscription('user.authorization.grant', '1', ['client_id' => '12345'], $requestGenerator)->willReturn($request);
271+
$this->subscribeToUserAuthorizationGrant($this->bearer, $this->secret, $this->callback, '12345')->shouldBe($response);
272+
}
273+
274+
function it_should_subscribe_to_channel_goal_begin(RequestGenerator $requestGenerator, Request $request, Response $response)
275+
{
276+
$this->createEventSubSubscription('channel.goal.begin', '1', ['broadcaster_user_id' => '12345'], $requestGenerator)->willReturn($request);
277+
$this->subscribeToChannelGoalBegin($this->bearer, $this->secret, $this->callback, '12345')->shouldBe($response);
278+
}
279+
280+
function it_should_subscribe_to_channel_goal_progress(RequestGenerator $requestGenerator, Request $request, Response $response)
281+
{
282+
$this->createEventSubSubscription('channel.goal.progress', '1', ['broadcaster_user_id' => '12345'], $requestGenerator)->willReturn($request);
283+
$this->subscribeToChannelGoalProgress($this->bearer, $this->secret, $this->callback, '12345')->shouldBe($response);
284+
}
285+
286+
function it_should_subscribe_to_channel_goal_end(RequestGenerator $requestGenerator, Request $request, Response $response)
287+
{
288+
$this->createEventSubSubscription('channel.goal.end', '1', ['broadcaster_user_id' => '12345'], $requestGenerator)->willReturn($request);
289+
$this->subscribeToChannelGoalEnd($this->bearer, $this->secret, $this->callback, '12345')->shouldBe($response);
290+
}
255291
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
<?php
2+
3+
namespace spec\TwitchApi\Resources;
4+
5+
use GuzzleHttp\Psr7\Request;
6+
use GuzzleHttp\Psr7\Response;
7+
use TwitchApi\RequestGenerator;
8+
use TwitchApi\HelixGuzzleClient;
9+
use PhpSpec\ObjectBehavior;
10+
11+
class HypeTrainApiSpec extends ObjectBehavior
12+
{
13+
function let(HelixGuzzleClient $guzzleClient, RequestGenerator $requestGenerator, Request $request, Response $response)
14+
{
15+
$this->beConstructedWith($guzzleClient, $requestGenerator);
16+
$guzzleClient->send($request)->willReturn($response);
17+
}
18+
19+
function it_should_get_hype_train_events(RequestGenerator $requestGenerator, Request $request, Response $response)
20+
{
21+
$requestGenerator->generate('GET', 'hypetrain/events', 'TEST_TOKEN', [['key' => 'broadcaster_id', 'value' => '123']], [])->willReturn($request);
22+
$this->getHypeTrainEvents('TEST_TOKEN', '123')->shouldBe($response);
23+
}
24+
25+
function it_should_get_hype_train_events_with_opts(RequestGenerator $requestGenerator, Request $request, Response $response)
26+
{
27+
$requestGenerator->generate('GET', 'hypetrain/events', 'TEST_TOKEN', [['key' => 'broadcaster_id', 'value' => '123'], ['key' => 'first', 'value' => 100], ['key' => 'cursor', 'value' => 'abc']], [])->willReturn($request);
28+
$this->getHypeTrainEvents('TEST_TOKEN', '123', 100, 'abc')->shouldBe($response);
29+
}
30+
}

0 commit comments

Comments
 (0)