Skip to content

Commit 548e480

Browse files
committed
feat: add standard client headers
1 parent 23ffc0e commit 548e480

File tree

2 files changed

+57
-1
lines changed

2 files changed

+57
-1
lines changed
+12-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,18 @@
11
import 'package:supabase/src/version.dart';
2+
import 'dart:io' show Platform;
23

34
class Constants {
4-
static const Map<String, String> defaultHeaders = {
5+
static String get platform {
6+
return Platform.operatingSystem;
7+
}
8+
9+
static String get platformVersion {
10+
return Platform.operatingSystemVersion;
11+
}
12+
13+
static final Map<String, String> defaultHeaders = {
514
'X-Client-Info': 'supabase-dart/$version',
15+
'X-Supabase-Client-Platform': platform,
16+
'X-Supabase-Client-Platform-Version': platformVersion,
617
};
718
}

packages/supabase/test/client_test.dart

+45
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,51 @@ void main() {
3535
await supabase.dispose();
3636
});
3737

38+
test('X-Supabase-Client-Platform header is set properly', () {
39+
expect(supabase.headers['X-Supabase-Client-Platform'],
40+
Platform.operatingSystem);
41+
expect(supabase.headers['X-Supabase-Client-Platform-Version'],
42+
Platform.operatingSystemVersion);
43+
});
44+
test('X-Supabase-Client-Platform header is set properly on auth', () {
45+
expect(supabase.auth.headers['X-Supabase-Client-Platform'],
46+
Platform.operatingSystem);
47+
expect(supabase.auth.headers['X-Supabase-Client-Platform-Version'],
48+
Platform.operatingSystemVersion);
49+
});
50+
51+
test('X-Supabase-Client-Platform header is set properly on storage', () {
52+
expect(supabase.storage.headers['X-Supabase-Client-Platform'],
53+
Platform.operatingSystem);
54+
expect(supabase.storage.headers['X-Supabase-Client-Platform-Version'],
55+
Platform.operatingSystemVersion);
56+
});
57+
58+
test('X-Supabase-Client-Platform header is set properly on functions', () {
59+
expect(supabase.functions.headers['X-Supabase-Client-Platform'],
60+
Platform.operatingSystem);
61+
expect(supabase.functions.headers['X-Supabase-Client-Platform-Version'],
62+
Platform.operatingSystemVersion);
63+
});
64+
65+
test('X-Supabase-Client-Platform header is set properly on rest', () {
66+
expect(supabase.rest.headers['X-Supabase-Client-Platform'],
67+
Platform.operatingSystem);
68+
expect(supabase.rest.headers['X-Supabase-Client-Platform-Version'],
69+
Platform.operatingSystemVersion);
70+
});
71+
72+
test('X-Supabase-Client-Platform header is set properly on realtime',
73+
() async {
74+
final request = await getRealtimeRequest(
75+
server: mockServer,
76+
supabaseClient: supabase,
77+
);
78+
expect(request.headers['X-Supabase-Client-Platform']?.first,
79+
Platform.operatingSystem);
80+
expect(request.headers['X-Supabase-Client-Platform-Version']?.first,
81+
Platform.operatingSystemVersion);
82+
});
3883
test('X-Client-Info header is set properly on realtime', () async {
3984
final request = await getRealtimeRequest(
4085
server: mockServer,

0 commit comments

Comments
 (0)