ciyidogan commited on
Commit
6aa3dd7
·
verified ·
1 Parent(s): b37cd98

Update flare-ui/src/app/components/test/test.component.ts

Browse files
flare-ui/src/app/components/test/test.component.ts CHANGED
@@ -175,7 +175,7 @@ export class TestComponent implements OnInit {
175
  const response = await this.apiService.getEnvironment().toPromise();
176
  return {
177
  name: 'GET /api/environment',
178
- status: response?.work_mode ? 'PASS' : 'FAIL', // Add optional chaining
179
  duration_ms: Date.now() - start
180
  };
181
  } catch (error) {
@@ -196,7 +196,7 @@ export class TestComponent implements OnInit {
196
  name: 'GET /api/projects',
197
  status: Array.isArray(response) ? 'PASS' : 'FAIL',
198
  duration_ms: Date.now() - start,
199
- details: `Retrieved ${response?.length || 0} projects` // Add optional chaining
200
  };
201
  } catch (error) {
202
  return {
@@ -216,7 +216,7 @@ export class TestComponent implements OnInit {
216
  name: 'GET /api/apis',
217
  status: Array.isArray(response) ? 'PASS' : 'FAIL',
218
  duration_ms: Date.now() - start,
219
- details: `Retrieved ${response?.length || 0} APIs` // Add optional chaining
220
  };
221
  } catch (error) {
222
  return {
@@ -228,24 +228,26 @@ export class TestComponent implements OnInit {
228
  }
229
  });
230
 
231
- // Integration Tests
232
  this.addTest('integration', 'Create and delete project', async () => {
233
  const start = Date.now();
234
- let createdProject: any = null;
235
 
236
  try {
237
  // Create project
238
- createdProject = await this.apiService.createProject({
239
  name: `test_project_${Date.now()}`,
240
  caption: 'Test Project'
241
- }).toPromise();
242
 
243
- if (!createdProject?.id) {
244
- throw new Error('Project creation failed - no ID returned');
245
  }
246
 
247
- // Delete project - ID is guaranteed to exist here
248
- await this.apiService.deleteProject(createdProject.id).toPromise();
 
 
249
 
250
  return {
251
  name: 'Create and delete project',
@@ -255,12 +257,10 @@ export class TestComponent implements OnInit {
255
  };
256
  } catch (error: any) {
257
  // Try to clean up if project was created
258
- if (createdProject?.id) {
259
  try {
260
- await this.apiService.deleteProject(createdProject.id).toPromise();
261
- } catch (cleanupError) {
262
- console.error('Cleanup failed:', cleanupError);
263
- }
264
  }
265
 
266
  return {
@@ -272,6 +272,28 @@ export class TestComponent implements OnInit {
272
  }
273
  });
274
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
275
  // Validation Tests
276
  this.addTest('validation', 'Regex validation - valid pattern', async () => {
277
  const start = Date.now();
@@ -312,72 +334,6 @@ export class TestComponent implements OnInit {
312
  }
313
  });
314
 
315
- // Integration Tests
316
- this.addTest('integration', 'Create and delete project', async () => {
317
- const start = Date.now();
318
- let projectId: number | null = null;
319
-
320
- try {
321
- // Create project
322
- const createResponse = await this.apiService.createProject({
323
- name: `test_project_${Date.now()}`,
324
- caption: 'Test Project'
325
- }).toPromise() as any;
326
-
327
- if (!createResponse.id) {
328
- throw new Error('Project creation failed');
329
- }
330
-
331
- projectId = createResponse.id;
332
-
333
- // Delete project
334
- await this.apiService.deleteProject(projectId).toPromise();
335
-
336
- return {
337
- name: 'Create and delete project',
338
- status: 'PASS',
339
- duration_ms: Date.now() - start,
340
- details: 'Project lifecycle test passed'
341
- };
342
- } catch (error: any) {
343
- // Try to clean up if project was created
344
- if (projectId) {
345
- try {
346
- await this.apiService.deleteProject(projectId).toPromise();
347
- } catch {}
348
- }
349
-
350
- return {
351
- name: 'Create and delete project',
352
- status: 'FAIL',
353
- error: error.message || 'Test failed',
354
- duration_ms: Date.now() - start
355
- };
356
- }
357
- });
358
-
359
- this.addTest('integration', 'API used in intent cannot be deleted', async () => {
360
- const start = Date.now();
361
- try {
362
- // Try to delete an API that's used in intents
363
- await this.apiService.deleteAPI('book_flight_api').toPromise();
364
-
365
- return {
366
- name: 'API used in intent cannot be deleted',
367
- status: 'FAIL',
368
- error: 'Expected error but API was deleted',
369
- duration_ms: Date.now() - start
370
- };
371
- } catch (error: any) {
372
- return {
373
- name: 'API used in intent cannot be deleted',
374
- status: error.status === 400 ? 'PASS' : 'FAIL',
375
- duration_ms: Date.now() - start,
376
- details: 'Correctly prevented deletion of API in use'
377
- };
378
- }
379
- });
380
-
381
  // Update test counts
382
  this.categories.forEach(cat => {
383
  cat.displayName = `${cat.displayName} (${cat.tests.length} tests)`;
@@ -397,7 +353,8 @@ export class TestComponent implements OnInit {
397
  }
398
 
399
  toggleAll() {
400
- this.categories.forEach(c => c.selected = this.allSelected);
 
401
  }
402
 
403
  async runAllTests() {
 
175
  const response = await this.apiService.getEnvironment().toPromise();
176
  return {
177
  name: 'GET /api/environment',
178
+ status: response?.work_mode ? 'PASS' : 'FAIL',
179
  duration_ms: Date.now() - start
180
  };
181
  } catch (error) {
 
196
  name: 'GET /api/projects',
197
  status: Array.isArray(response) ? 'PASS' : 'FAIL',
198
  duration_ms: Date.now() - start,
199
+ details: `Retrieved ${response?.length || 0} projects`
200
  };
201
  } catch (error) {
202
  return {
 
216
  name: 'GET /api/apis',
217
  status: Array.isArray(response) ? 'PASS' : 'FAIL',
218
  duration_ms: Date.now() - start,
219
+ details: `Retrieved ${response?.length || 0} APIs`
220
  };
221
  } catch (error) {
222
  return {
 
228
  }
229
  });
230
 
231
+ // Integration Tests
232
  this.addTest('integration', 'Create and delete project', async () => {
233
  const start = Date.now();
234
+ let projectId: number | undefined;
235
 
236
  try {
237
  // Create project
238
+ const createResponse = await this.apiService.createProject({
239
  name: `test_project_${Date.now()}`,
240
  caption: 'Test Project'
241
+ }).toPromise() as any;
242
 
243
+ if (!createResponse?.id) {
244
+ throw new Error('Project creation failed');
245
  }
246
 
247
+ projectId = createResponse.id;
248
+
249
+ // Delete project
250
+ await this.apiService.deleteProject(projectId).toPromise();
251
 
252
  return {
253
  name: 'Create and delete project',
 
257
  };
258
  } catch (error: any) {
259
  // Try to clean up if project was created
260
+ if (projectId !== undefined) {
261
  try {
262
+ await this.apiService.deleteProject(projectId).toPromise();
263
+ } catch {}
 
 
264
  }
265
 
266
  return {
 
272
  }
273
  });
274
 
275
+ this.addTest('integration', 'API used in intent cannot be deleted', async () => {
276
+ const start = Date.now();
277
+ try {
278
+ // Try to delete an API that's used in intents
279
+ await this.apiService.deleteAPI('book_flight_api').toPromise();
280
+
281
+ return {
282
+ name: 'API used in intent cannot be deleted',
283
+ status: 'FAIL',
284
+ error: 'Expected error but API was deleted',
285
+ duration_ms: Date.now() - start
286
+ };
287
+ } catch (error: any) {
288
+ return {
289
+ name: 'API used in intent cannot be deleted',
290
+ status: error.status === 400 ? 'PASS' : 'FAIL',
291
+ duration_ms: Date.now() - start,
292
+ details: 'Correctly prevented deletion of API in use'
293
+ };
294
+ }
295
+ });
296
+
297
  // Validation Tests
298
  this.addTest('validation', 'Regex validation - valid pattern', async () => {
299
  const start = Date.now();
 
334
  }
335
  });
336
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
337
  // Update test counts
338
  this.categories.forEach(cat => {
339
  cat.displayName = `${cat.displayName} (${cat.tests.length} tests)`;
 
353
  }
354
 
355
  toggleAll() {
356
+ const newState = !this.allSelected;
357
+ this.categories.forEach(c => c.selected = newState);
358
  }
359
 
360
  async runAllTests() {