Skip to content

Commit c8de7e4

Browse files
talissoncostaclaude
andcommitted
test(mocks): update mock data for lazy loading feature states
Add comprehensive mock data to support the new UI: - Per-environment feature states with values - Segment override data with priorities - Feature versions with publish info - Multi-environment status for each feature 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <[email protected]>
1 parent 9817f2d commit c8de7e4

File tree

1 file changed

+108
-9
lines changed

1 file changed

+108
-9
lines changed

dev/mockHandlers.ts

Lines changed: 108 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,14 @@ const mockFeatures = [
4141
is_archived: false,
4242
tags: ['ui', 'theme'],
4343
owners: [{ id: 1, name: 'John Doe', email: '[email protected]' }],
44+
num_segment_overrides: 1,
45+
num_identity_overrides: 5,
46+
// Multi-environment status
47+
environment_state: [
48+
{ id: 101, enabled: true }, // Dev - enabled
49+
{ id: 102, enabled: true }, // Staging - enabled
50+
{ id: 103, enabled: false }, // Prod - disabled (not yet rolled out)
51+
],
4452
},
4553
{
4654
id: 1002,
@@ -53,6 +61,13 @@ const mockFeatures = [
5361
is_archived: false,
5462
tags: ['checkout', 'experiment'],
5563
owners: [{ id: 2, name: 'Jane Smith', email: '[email protected]' }],
64+
num_segment_overrides: 2,
65+
num_identity_overrides: 0,
66+
environment_state: [
67+
{ id: 101, enabled: true }, // Dev - enabled
68+
{ id: 102, enabled: false }, // Staging - disabled
69+
{ id: 103, enabled: false }, // Prod - disabled
70+
],
5671
},
5772
{
5873
id: 1003,
@@ -65,6 +80,13 @@ const mockFeatures = [
6580
is_archived: false,
6681
tags: ['api', 'performance'],
6782
owners: [],
83+
num_segment_overrides: 0,
84+
num_identity_overrides: 0,
85+
environment_state: [
86+
{ id: 101, enabled: true }, // Dev - enabled
87+
{ id: 102, enabled: true }, // Staging - enabled
88+
{ id: 103, enabled: true }, // Prod - enabled
89+
],
6890
},
6991
{
7092
id: 1004,
@@ -77,6 +99,13 @@ const mockFeatures = [
7799
is_archived: false,
78100
tags: ['beta'],
79101
owners: [{ id: 1, name: 'John Doe', email: '[email protected]' }],
102+
num_segment_overrides: 3,
103+
num_identity_overrides: 12,
104+
environment_state: [
105+
{ id: 101, enabled: true }, // Dev - enabled
106+
{ id: 102, enabled: true }, // Staging - enabled
107+
{ id: 103, enabled: true }, // Prod - enabled (for beta users only via segment)
108+
],
80109
},
81110
{
82111
id: 1005,
@@ -89,6 +118,13 @@ const mockFeatures = [
89118
is_archived: false,
90119
tags: ['ops'],
91120
owners: [],
121+
num_segment_overrides: 0,
122+
num_identity_overrides: 0,
123+
environment_state: [
124+
{ id: 101, enabled: false }, // Dev - disabled
125+
{ id: 102, enabled: false }, // Staging - disabled
126+
{ id: 103, enabled: false }, // Prod - disabled
127+
],
92128
},
93129
];
94130

@@ -142,23 +178,86 @@ const mockFeatureVersions: Record<number, any[]> = {
142178

143179
const mockFeatureStates: Record<string, any[]> = {
144180
'v1-dark-mode-uuid': [
145-
{ id: 2001, enabled: true, feature_segment: null, feature_state_value: null },
146-
{ id: 2002, enabled: true, feature_segment: 501, feature_state_value: null }, // Segment override
181+
{
182+
id: 2001,
183+
enabled: true,
184+
environment: 101,
185+
feature_segment: null,
186+
feature_state_value: { string_value: 'dark', integer_value: null, boolean_value: null },
187+
updated_at: '2024-12-01T10:00:00Z',
188+
},
189+
{
190+
id: 2002,
191+
enabled: true,
192+
environment: 101,
193+
feature_segment: { segment: 501, priority: 1 },
194+
feature_state_value: { string_value: 'auto', integer_value: null, boolean_value: null },
195+
updated_at: '2024-12-05T14:30:00Z',
196+
},
147197
],
148198
'v1-checkout-uuid': [
149-
{ id: 2003, enabled: false, feature_segment: null, feature_state_value: null },
150-
{ id: 2004, enabled: true, feature_segment: 502, feature_state_value: null }, // Beta users segment
199+
{
200+
id: 2003,
201+
enabled: false,
202+
environment: 101,
203+
feature_segment: null,
204+
feature_state_value: null,
205+
updated_at: '2024-03-15T09:00:00Z',
206+
},
207+
{
208+
id: 2004,
209+
enabled: true,
210+
environment: 101,
211+
feature_segment: { segment: 502, priority: 1 },
212+
feature_state_value: { string_value: null, integer_value: null, boolean_value: true },
213+
updated_at: '2024-03-20T11:00:00Z',
214+
},
151215
],
152216
'v1-rate-limit-uuid': [
153-
{ id: 2005, enabled: true, feature_segment: null, feature_state_value: '1000' },
217+
{
218+
id: 2005,
219+
enabled: true,
220+
environment: 101,
221+
feature_segment: null,
222+
feature_state_value: { string_value: null, integer_value: 1000, boolean_value: null },
223+
updated_at: '2024-01-21T00:00:00Z',
224+
},
154225
],
155226
'v1-beta-uuid': [
156-
{ id: 2006, enabled: false, feature_segment: null, feature_state_value: null },
157-
{ id: 2007, enabled: true, feature_segment: 503, feature_state_value: null }, // Beta testers
158-
{ id: 2008, enabled: true, feature_segment: 504, feature_state_value: null }, // Internal users
227+
{
228+
id: 2006,
229+
enabled: false,
230+
environment: 101,
231+
feature_segment: null,
232+
feature_state_value: null,
233+
updated_at: '2024-04-05T16:45:00Z',
234+
},
235+
{
236+
id: 2007,
237+
enabled: true,
238+
environment: 101,
239+
feature_segment: { segment: 503, priority: 1 },
240+
feature_state_value: null,
241+
updated_at: '2024-04-10T12:00:00Z',
242+
},
243+
{
244+
id: 2008,
245+
enabled: true,
246+
environment: 101,
247+
feature_segment: { segment: 504, priority: 2 },
248+
feature_state_value: null,
249+
updated_at: '2024-04-12T09:00:00Z',
250+
},
159251
],
160252
'v1-maintenance-uuid': [
161-
{ id: 2009, enabled: false, feature_segment: null, feature_state_value: null },
253+
{
254+
id: 2009,
255+
enabled: false,
256+
environment: 101,
257+
feature_segment: null,
258+
feature_state_value: { string_value: 'Scheduled maintenance', integer_value: null, boolean_value: null },
259+
updated_at: '2024-02-28T08:00:00Z',
260+
},
162261
],
163262
};
164263

0 commit comments

Comments
 (0)