Skip to content

Commit b4da8dd

Browse files
committed
Ensure RN SDK sends client id
1 parent 1bdd5d5 commit b4da8dd

6 files changed

Lines changed: 40 additions & 6 deletions

File tree

packages/react-native-sdk/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@reflag/react-native-sdk",
3-
"version": "0.1.0",
3+
"version": "0.1.1",
44
"license": "MIT",
55
"repository": {
66
"type": "git",
@@ -30,7 +30,7 @@
3030
},
3131
"dependencies": {
3232
"@react-native-async-storage/async-storage": "^2.2.0",
33-
"@reflag/react-sdk": "1.4.0"
33+
"@reflag/react-sdk": "1.4.1"
3434
},
3535
"peerDependencies": {
3636
"react": "*",

packages/react-native-sdk/src/index.tsx

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import React from "react";
22
import AsyncStorage from "@react-native-async-storage/async-storage";
3+
import { version } from "../package.json";
34

45
import type {
56
BootstrappedFlags,
@@ -23,6 +24,8 @@ import type {
2324
TypedFlags,
2425
UserContext,
2526
} from "@reflag/react-sdk";
27+
28+
const SDK_VERSION = `react-native-sdk/${version}`;
2629
import {
2730
ReflagBootstrappedProvider as BaseBootstrappedProvider,
2831
ReflagClientProvider,
@@ -81,6 +84,7 @@ export function ReflagProvider(props: ReflagProps) {
8184
return (
8285
<BaseProvider
8386
{...props}
87+
sdkVersion={SDK_VERSION}
8488
storage={props.storage ?? AsyncStorage}
8589
feedback={{
8690
...props.feedback,
@@ -94,6 +98,7 @@ export function ReflagBootstrappedProvider(props: ReflagBootstrappedProps) {
9498
return (
9599
<BaseBootstrappedProvider
96100
{...props}
101+
sdkVersion={SDK_VERSION}
97102
storage={props.storage ?? AsyncStorage}
98103
feedback={{
99104
...props.feedback,

packages/react-sdk/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@reflag/react-sdk",
3-
"version": "1.4.0",
3+
"version": "1.4.1",
44
"license": "MIT",
55
"repository": {
66
"type": "git",

packages/react-sdk/src/index.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,7 @@ function useReflagClient(initOptions: InitOptions, debug = false) {
184184
const client = new ReflagClient({
185185
...initOptions,
186186
logger: debug ? console : undefined,
187-
sdkVersion: SDK_VERSION,
187+
sdkVersion: initOptions.sdkVersion ?? SDK_VERSION,
188188
});
189189
if (!isServer) {
190190
reflagClients.set(initOptions.publishableKey, client);

packages/react-sdk/test/usage.test.tsx

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -199,6 +199,35 @@ describe("<ReflagProvider />", () => {
199199
expect(initialize).toHaveBeenCalled();
200200
});
201201

202+
test("uses provided sdkVersion when set", async () => {
203+
let capturedSdkVersion: string | null = null;
204+
server.use(
205+
http.get(/\/features\/evaluated$/, ({ request }) => {
206+
capturedSdkVersion = new URL(request.url).searchParams.get(
207+
"reflag-sdk-version",
208+
);
209+
return new HttpResponse(
210+
JSON.stringify({
211+
success: true,
212+
features: {},
213+
}),
214+
{ status: 200 },
215+
);
216+
}),
217+
);
218+
219+
render(
220+
getProvider({
221+
sdkVersion: "react-native-sdk/test",
222+
context: { other },
223+
}),
224+
);
225+
226+
await waitFor(() => {
227+
expect(capturedSdkVersion).toBe("react-native-sdk/test");
228+
});
229+
});
230+
202231
test("only calls init once with the same args", () => {
203232
const node = getProvider();
204233
const initialize = vi.spyOn(ReflagClient.prototype, "initialize");

yarn.lock

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4943,7 +4943,7 @@ __metadata:
49434943
dependencies:
49444944
"@react-native-async-storage/async-storage": "npm:^2.2.0"
49454945
"@reflag/eslint-config": "npm:^0.0.2"
4946-
"@reflag/react-sdk": "npm:1.4.0"
4946+
"@reflag/react-sdk": "npm:1.4.1"
49474947
"@reflag/tsconfig": "npm:^0.0.2"
49484948
"@types/react": "npm:^19.0.12"
49494949
eslint: "npm:^9.21.0"
@@ -4955,7 +4955,7 @@ __metadata:
49554955
languageName: unknown
49564956
linkType: soft
49574957

4958-
"@reflag/react-sdk@npm:1.4.0, @reflag/react-sdk@workspace:^, @reflag/react-sdk@workspace:packages/react-sdk":
4958+
"@reflag/react-sdk@npm:1.4.1, @reflag/react-sdk@workspace:^, @reflag/react-sdk@workspace:packages/react-sdk":
49594959
version: 0.0.0-use.local
49604960
resolution: "@reflag/react-sdk@workspace:packages/react-sdk"
49614961
dependencies:

0 commit comments

Comments
 (0)