Skip to content

Commit b6f3965

Browse files
committed
fix(dynamite_runtime): cookie header format
Signed-off-by: Nikolas Rimikis <leptopoda@users.noreply.github.com>
1 parent 476de35 commit b6f3965

File tree

2 files changed

+25
-6
lines changed

2 files changed

+25
-6
lines changed

packages/dynamite/dynamite_runtime/lib/src/client/client.dart

+16-1
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,22 @@ class DynamiteClient with http.BaseClient {
6262
if (cookieJar != null) {
6363
final cookies = await cookieJar!.loadForRequest(request.url);
6464
if (cookies.isNotEmpty) {
65-
request.headers['cookie'] = cookies.join('; ');
65+
final buffer = StringBuffer();
66+
67+
for (final entry in cookies.indexed) {
68+
final cookie = entry.$2;
69+
70+
buffer
71+
..write(cookie.name)
72+
..write('=')
73+
..write(cookie.value);
74+
75+
if (entry.$1 < cookies.length - 1) {
76+
buffer.write('; ');
77+
}
78+
}
79+
80+
request.headers['cookie'] = buffer.toString();
6681
}
6782
}
6883

packages/dynamite/dynamite_runtime/test/client_test.dart

+9-5
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ void main() {
1515

1616
test('Cookies', () async {
1717
final mockedClient = MockClient((request) async {
18-
expect(request.headers['cookie'], equals(Cookie('a', 'b').toString()));
18+
expect(request.headers['cookie'], equals('a=b; a2=b2; a3=b3'));
1919

2020
return Response(
2121
'',
@@ -32,15 +32,19 @@ void main() {
3232
cookieJar: cookieJar,
3333
);
3434

35-
await cookieJar.saveFromResponse(uri, [Cookie('a', 'b')]);
35+
await cookieJar.saveFromResponse(uri, [
36+
Cookie('a', 'b'),
37+
Cookie('a2', 'b2'),
38+
Cookie('a3', 'b3'),
39+
]);
3640
await client.get(uri);
3741

3842
final cookies = await cookieJar.loadForRequest(uri);
39-
expect(cookies, hasLength(2));
43+
expect(cookies, hasLength(4));
4044
expect(cookies[0].name, 'a');
4145
expect(cookies[0].value, 'b');
42-
expect(cookies[1].name, 'c');
43-
expect(cookies[1].value, 'd');
46+
expect(cookies.last.name, 'c');
47+
expect(cookies.last.value, 'd');
4448
});
4549

4650
test('No cookies', () async {

0 commit comments

Comments
 (0)