Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
0dc65a9
feat: update by openapi refactor
mogita Feb 16, 2026
ca6304b
fix: map missing fields to null with fromJson()
mogita Feb 16, 2026
aa920ec
feat: update by openapi refactor
mogita Feb 17, 2026
9bacb4a
feat: update by openapi refactor
mogita Feb 17, 2026
be430a7
fix: correct array for map
mogita Feb 19, 2026
42bc228
style: clean up empty comments
mogita Feb 19, 2026
c1e0e43
feat: update argument position for constructors
mogita Feb 19, 2026
d98e987
chore: bump jwt to v7 and commit composer.lock
mogita Feb 19, 2026
5a9c36e
feat: stablize constructor parameter ordering
mogita Feb 20, 2026
ca58c20
feat: update by openapi refactor
mogita Feb 24, 2026
ac5b0e5
feat: add chat integration test helpers and base test case
mogita Feb 24, 2026
baa8d47
feat: add all 16 user integration tests for chat SDK parity
mogita Feb 24, 2026
0a52a0a
feat: add channel integration tests (32 tests)
mogita Feb 24, 2026
2ecd94f
feat: add message integration tests (27 tests)
mogita Feb 24, 2026
4e1f916
feat: add chat reaction integration tests (send, get, delete, enforce…
mogita Feb 24, 2026
c6fabc4
feat: add chat polls integration tests (create, query, vote)
mogita Feb 24, 2026
9fa7c5a
feat: add misc chat integration tests (devices, blocklists, commands,…
mogita Feb 24, 2026
12fee41
feat: add moderation integration tests (ban/unban, mute/unmute, flag …
mogita Feb 24, 2026
0d5551a
feat: add video integration tests (17 tests)
mogita Feb 24, 2026
9b0b48f
test: fix queryUsers, Guzzle error handling and more
mogita Feb 25, 2026
df0af38
test: set test groups properly
mogita Feb 25, 2026
d19bd15
fix: add eventual consistency handling for integration tests
mogita Feb 25, 2026
72fd6cf
test: running time optimization
mogita Feb 25, 2026
b3a3ab7
test: improve wait intervals
mogita Feb 25, 2026
acb088e
test: remove offset and sort case
mogita Feb 25, 2026
881896d
test: fine tuning
mogita Feb 25, 2026
514aaf5
test: fine tuning
mogita Feb 25, 2026
fb8bdab
test: parallel testing
mogita Feb 26, 2026
ebfdbda
test: fine tuning
mogita Feb 26, 2026
2c55dcc
test: fine tuning
mogita Feb 26, 2026
d13d123
test: fine tuning
mogita Feb 26, 2026
a88c2c7
test: fine tuning
mogita Feb 26, 2026
812fa5b
test: update parallel testing
mogita Feb 26, 2026
668bdf1
test: fine tuning
mogita Feb 26, 2026
66d8e99
chore: set platform version to php 8.1
mogita Feb 26, 2026
32e22e2
test: fine tuning
mogita Feb 26, 2026
7b5cc04
test: fine tuning
mogita Feb 26, 2026
2d821d2
test: run parallel unit test and one integration test
mogita Feb 27, 2026
a2479d5
test: fine tuning
mogita Feb 27, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
24 changes: 19 additions & 5 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
name: ci

on:
on:
pull_request:
push:
branches: [master, main]

concurrency:
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref }}
cancel-in-progress: true

Expand All @@ -14,7 +14,7 @@ jobs:
name: 🧪 Test & lint
environment: ci
runs-on: ubuntu-latest

strategy:
matrix:
php-version: ['8.1', '8.2', '8.3']
Expand All @@ -29,13 +29,27 @@ jobs:
extensions: curl, json
tools: composer:v2

- name: Cache composer dependencies
uses: actions/cache@v4
with:
path: vendor
key: composer-${{ matrix.php-version }}-${{ hashFiles('composer.lock') }}
restore-keys: composer-${{ matrix.php-version }}-

- name: Install dependencies
run: composer install --prefer-dist --no-interaction

- name: Test
- name: Lint & unit tests
env:
STREAM_API_KEY: ${{ vars.STREAM_API_KEY }}
STREAM_API_SECRET: ${{ secrets.STREAM_API_SECRET }}
run: |
make lint
make test
make test-unit

- name: Integration tests
if: matrix.php-version == '8.1'
env:
STREAM_API_KEY: ${{ vars.STREAM_API_KEY }}
STREAM_API_SECRET: ${{ secrets.STREAM_API_SECRET }}
run: make test-integration
5 changes: 1 addition & 4 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
# Dependencies
/vendor/

# Composer
composer.lock

# IDE files
.idea/
.vscode/
Expand Down Expand Up @@ -34,4 +31,4 @@ logs/
# src/Models/
# src/Requests/
# src/Generated/
# composer-generated.json
# composer-generated.json
4 changes: 2 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ test: test-unit test-integration ## Run all tests
test-unit: ## Run unit tests only
./vendor/bin/phpunit tests --exclude-group integration

test-integration: ## Run integration tests only
./vendor/bin/phpunit tests/Integration/
test-integration: ## Run integration tests in parallel (8 workers, method-level)
./vendor/bin/paratest --processes=8 --runner=WrapperRunner --colors tests/Integration/

test-specific: ## Run a specific test (usage: make test-specific TEST=TestClassName::testMethodName)
./vendor/bin/phpunit --filter $(TEST)
Expand Down
3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,9 @@ echo "Duration: " . $response->duration;

## Models

> **Note:** When constructing models directly, always use **named arguments** (e.g. `new Message(text: 'hello')`).
> Positional argument usage is not supported and may break across SDK updates as parameter order is not guaranteed.

### Automatic JSON Parsing

Generated models automatically handle JSON parsing and serialization:
Expand Down
2 changes: 1 addition & 1 deletion composer-generated.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
"php": "^8.1",
"ext-json": "*",
"ext-curl": "*",
"firebase/php-jwt": "^6.0",
"firebase/php-jwt": "^7.0",
"guzzlehttp/guzzle": "^7.0",
"vlucas/phpdotenv": "^5.0"
},
Expand Down
8 changes: 6 additions & 2 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,14 @@
"php": "^8.1",
"ext-curl": "*",
"ext-json": "*",
"firebase/php-jwt": "^6.0",
"firebase/php-jwt": "^7.0",
"guzzlehttp/guzzle": "^7.0",
"vlucas/phpdotenv": "^5.0"
},
"require-dev": {
"phpunit/phpunit": "^10.0",
"brianium/paratest": ">=7.2 <7.9",
"phpstan/phpstan": "^1.0",
"phpunit/phpunit": "^10.0",
"squizlabs/php_codesniffer": "^3.7"
},
"autoload": {
Expand All @@ -35,6 +36,9 @@
},
"config": {
"optimize-autoloader": true,
"platform": {
"php": "8.1.0"
},
"preferred-install": "dist",
"sort-packages": true
},
Expand Down
Loading