Skip to content
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion packages/react-native/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@formbricks/react-native",
"version": "2.1.2",
"version": "2.2.0",
"license": "MIT",
"description": "Formbricks React Native SDK allows you to connect your app to Formbricks, display surveys and trigger events.",
"homepage": "https://formbricks.com",
Expand Down
16 changes: 16 additions & 0 deletions packages/react-native/src/lib/common/tests/utils.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -158,6 +158,22 @@ describe("utils.ts", () => {
expect(result[0].id).toBe(mockSurveyId1);
});

test("filters out surveys that have a segment with filters if userId is not set", () => {
environment.data.surveys = [
{
...baseSurvey,
id: mockSurveyId1,
segment: {
id: mockSegmentId1,
filters: [{ type: "string", key: "name", value: "John" }],
},
} as TSurvey,
];

const result = filterSurveys(environment, user);
expect(result).toHaveLength(0);
});

test("skips surveys that already displayed if displayOnce is used", () => {
environment.data.surveys = [
{
Expand Down
6 changes: 5 additions & 1 deletion packages/react-native/src/lib/common/utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,11 @@ export const filterSurveys = (
});

if (!userId) {
return filteredSurveys;
// exclude surveys that have a segment with filters
return filteredSurveys.filter((survey) => {
const segmentFiltersLength = survey.segment?.filters?.length ?? 0;
return segmentFiltersLength === 0;
});
}

if (!segments.length) {
Expand Down
Loading