assertSame( [ 'accessJwt' => 'a.b.c', 'refreshJwt' => 'd.e.f', 'handle' => 'alice.pds.test', 'did' => 'did:plc:alice', 'emailConfirmed' => true, 'active' => true, 'email' => 'alice@example.com', ], $response->jsonSerialize() ); } public function testJsonSerializeOmitsNullEmailAndIncludesStatusWhenInactive(): void { $response = new CreateSessionResponse( accessJwt: 'a', refreshJwt: 'b', did: 'did:plc:bob', handle: 'handle.invalid', email: null, emailConfirmed: false, active: false, status: 'deactivated', ); $serialized = $response->jsonSerialize(); $this->assertArrayNotHasKey('email', $serialized); $this->assertSame('deactivated', $serialized['status']); $this->assertFalse($serialized['active']); } }