tryassay 0.21.0 → 0.21.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -229,6 +229,33 @@ export class FunctionalTester {
229
229
  });
230
230
  }
231
231
  }
232
+ // Data persistence tests: POST → GET to verify data was saved
233
+ for (const route of this.plan.apiRoutes) {
234
+ if (route.method !== 'POST')
235
+ continue;
236
+ const getRoute = this.findCorrespondingGetRoute(route.path, this.plan.apiRoutes);
237
+ if (!getRoute)
238
+ continue;
239
+ const body = this.generateSamplePayload(route.path, route.featureId);
240
+ tests.push({
241
+ id: `persist-${route.path.replace(/\//g, '-')}`,
242
+ type: 'data_persistence',
243
+ name: `Persist: POST ${route.path} → GET ${getRoute}`,
244
+ method: 'POST',
245
+ path: route.path,
246
+ body,
247
+ expectedStatusRange: [200, 499],
248
+ errorPatterns: [
249
+ 'Internal Server Error',
250
+ 'TypeError',
251
+ 'ReferenceError',
252
+ 'Cannot read properties of',
253
+ ],
254
+ featureId: route.featureId,
255
+ verifyPath: getRoute,
256
+ idField: this.guessIdField(route.path),
257
+ });
258
+ }
232
259
  return tests;
233
260
  }
234
261
  /** Generate a minimal sample payload for a POST/PUT route based on schema. */
@@ -359,6 +386,9 @@ export class FunctionalTester {
359
386
  }
360
387
  /** Run a single functional test. */
361
388
  async runSingleTest(test, port) {
389
+ if (test.type === 'data_persistence') {
390
+ return this.runPersistenceVerification(test, port);
391
+ }
362
392
  const url = `http://localhost:${port}${test.path}`;
363
393
  const start = Date.now();
364
394
  try {
@@ -541,5 +571,205 @@ The dev server is running at http://localhost:${port}.`;
541
571
  const parts = routePath.replace(/^\/api/, '').replace(/^\//, '');
542
572
  return `src/routes/${parts || 'index'}.ts`;
543
573
  }
574
+ // ── Data Persistence Helpers ──────────────────────────────────
575
+ /** Run a persistence verification: POST data, then GET to confirm it was saved. */
576
+ async runPersistenceVerification(test, port) {
577
+ const baseUrl = `http://localhost:${port}`;
578
+ const start = Date.now();
579
+ try {
580
+ // Step 1: POST the data
581
+ const controller = new AbortController();
582
+ const timeoutId = setTimeout(() => controller.abort(), this.testTimeoutMs);
583
+ const postResponse = await fetch(`${baseUrl}${test.path}`, {
584
+ method: 'POST',
585
+ signal: controller.signal,
586
+ headers: {
587
+ 'Content-Type': 'application/json',
588
+ 'Accept': 'application/json',
589
+ },
590
+ body: JSON.stringify(test.body),
591
+ });
592
+ clearTimeout(timeoutId);
593
+ const postStatus = postResponse.status;
594
+ let postBody;
595
+ try {
596
+ postBody = await postResponse.text();
597
+ }
598
+ catch {
599
+ postBody = '';
600
+ }
601
+ // If POST itself fails with 5xx, report that
602
+ if (postStatus >= 500) {
603
+ return {
604
+ test,
605
+ status: 'fail',
606
+ statusCode: postStatus,
607
+ responseBody: postBody.slice(0, 2000),
608
+ errorMatch: `POST returned server error: ${postStatus}`,
609
+ durationMs: Date.now() - start,
610
+ };
611
+ }
612
+ // If POST returned a client error (4xx), it's not a persistence failure
613
+ if (postStatus >= 400) {
614
+ return {
615
+ test,
616
+ status: 'fail',
617
+ statusCode: postStatus,
618
+ responseBody: postBody.slice(0, 2000),
619
+ errorMatch: `POST returned client error: ${postStatus}`,
620
+ durationMs: Date.now() - start,
621
+ };
622
+ }
623
+ // Step 2: Extract ID from POST response
624
+ let postJson;
625
+ try {
626
+ postJson = JSON.parse(postBody);
627
+ }
628
+ catch {
629
+ return {
630
+ test,
631
+ status: 'fail',
632
+ statusCode: postStatus,
633
+ responseBody: postBody.slice(0, 2000),
634
+ errorMatch: 'POST response is not valid JSON — cannot extract ID',
635
+ durationMs: Date.now() - start,
636
+ };
637
+ }
638
+ const idField = test.idField ?? 'id';
639
+ const id = this.extractNestedValue(postJson, idField)
640
+ ?? this.extractNestedValue(postJson, 'id');
641
+ if (id === undefined || id === null) {
642
+ return {
643
+ test,
644
+ status: 'fail',
645
+ statusCode: postStatus,
646
+ responseBody: postBody.slice(0, 2000),
647
+ errorMatch: `Could not extract ID from POST response using field "${idField}"`,
648
+ durationMs: Date.now() - start,
649
+ };
650
+ }
651
+ // Step 3: GET to verify persistence
652
+ const verifyPath = (test.verifyPath ?? '').replace(/\[id\]|:id|\{id\}/g, String(id));
653
+ const getController = new AbortController();
654
+ const getTimeoutId = setTimeout(() => getController.abort(), this.testTimeoutMs);
655
+ const getResponse = await fetch(`${baseUrl}${verifyPath}`, {
656
+ method: 'GET',
657
+ signal: getController.signal,
658
+ headers: { 'Accept': 'application/json' },
659
+ });
660
+ clearTimeout(getTimeoutId);
661
+ const getStatus = getResponse.status;
662
+ let getBody;
663
+ try {
664
+ getBody = await getResponse.text();
665
+ }
666
+ catch {
667
+ getBody = '';
668
+ }
669
+ if (getStatus === 404) {
670
+ return {
671
+ test,
672
+ status: 'fail',
673
+ statusCode: getStatus,
674
+ responseBody: `POST ${postStatus}: ${postBody.slice(0, 500)}\nGET ${getStatus}: ${getBody.slice(0, 500)}`,
675
+ errorMatch: 'Data did not persist — POST succeeded but GET returned 404',
676
+ durationMs: Date.now() - start,
677
+ };
678
+ }
679
+ if (getStatus >= 200 && getStatus < 300) {
680
+ return {
681
+ test,
682
+ status: 'pass',
683
+ statusCode: getStatus,
684
+ responseBody: `POST ${postStatus} → GET ${getStatus}: ${getBody.slice(0, 500)}`,
685
+ durationMs: Date.now() - start,
686
+ };
687
+ }
688
+ return {
689
+ test,
690
+ status: 'fail',
691
+ statusCode: getStatus,
692
+ responseBody: `POST ${postStatus}: ${postBody.slice(0, 500)}\nGET ${getStatus}: ${getBody.slice(0, 500)}`,
693
+ errorMatch: `GET verification returned unexpected status: ${getStatus}`,
694
+ durationMs: Date.now() - start,
695
+ };
696
+ }
697
+ catch (err) {
698
+ if (err instanceof Error && err.name === 'AbortError') {
699
+ return {
700
+ test,
701
+ status: 'timeout',
702
+ statusCode: null,
703
+ responseBody: '',
704
+ errorMatch: `Persistence test timed out after ${this.testTimeoutMs}ms`,
705
+ durationMs: Date.now() - start,
706
+ };
707
+ }
708
+ return {
709
+ test,
710
+ status: 'error',
711
+ statusCode: null,
712
+ responseBody: '',
713
+ errorMatch: err instanceof Error ? err.message : String(err),
714
+ durationMs: Date.now() - start,
715
+ };
716
+ }
717
+ }
718
+ /** Find a GET route that matches a POST route path with an ID segment appended. */
719
+ findCorrespondingGetRoute(postPath, allRoutes) {
720
+ const getRoutes = allRoutes.filter(r => r.method === 'GET');
721
+ // Try common dynamic segment patterns: [id], :id, {id}, [slug]
722
+ const candidates = [
723
+ `${postPath}/[id]`,
724
+ `${postPath}/:id`,
725
+ `${postPath}/{id}`,
726
+ `${postPath}/[slug]`,
727
+ ];
728
+ for (const candidate of candidates) {
729
+ const match = getRoutes.find(r => r.path === candidate);
730
+ if (match)
731
+ return match.path;
732
+ }
733
+ // Also try: if POST is /api/foods, look for GET /api/foods/[foodId] etc.
734
+ const parts = postPath.split('/').filter(Boolean);
735
+ const resource = parts[parts.length - 1];
736
+ if (resource) {
737
+ const singular = resource.endsWith('s') ? resource.slice(0, -1) : resource;
738
+ const extraCandidates = [
739
+ `${postPath}/[${singular}Id]`,
740
+ `${postPath}/:${singular}Id`,
741
+ `${postPath}/[${singular}_id]`,
742
+ ];
743
+ for (const candidate of extraCandidates) {
744
+ const match = getRoutes.find(r => r.path === candidate);
745
+ if (match)
746
+ return match.path;
747
+ }
748
+ }
749
+ return null;
750
+ }
751
+ /** Guess the ID field name from a route path (e.g., /api/foods → food.id). */
752
+ guessIdField(postPath) {
753
+ const parts = postPath.split('/').filter(Boolean);
754
+ const resource = parts[parts.length - 1];
755
+ if (!resource)
756
+ return 'id';
757
+ const singular = resource.endsWith('s') ? resource.slice(0, -1) : resource;
758
+ return `${singular}.id`;
759
+ }
760
+ /** Extract a nested value from an object using a dotted path (e.g., "food.id"). */
761
+ extractNestedValue(obj, dottedPath) {
762
+ if (obj === null || obj === undefined || typeof obj !== 'object')
763
+ return undefined;
764
+ const segments = dottedPath.split('.');
765
+ let current = obj;
766
+ for (const segment of segments) {
767
+ if (current === null || current === undefined || typeof current !== 'object') {
768
+ return undefined;
769
+ }
770
+ current = current[segment];
771
+ }
772
+ return current;
773
+ }
544
774
  }
545
775
  //# sourceMappingURL=functional-tester.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"functional-tester.js","sourceRoot":"","sources":["../../src/runtime/functional-tester.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"functional-tester.js","sourceRoot":"","sources":["../../src/runtime/functional-tester.ts"],"names":[],"mappings":"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"}
@@ -1359,6 +1359,14 @@ export type AppCreatePhase = {
1359
1359
  readonly phase: 'verifying_plan';
1360
1360
  } | {
1361
1361
  readonly phase: 'requirements_refining';
1362
+ } | {
1363
+ readonly phase: 'plan_questioning';
1364
+ readonly questions: PlanQuestion[];
1365
+ readonly round: number;
1366
+ readonly confidence: number;
1367
+ } | {
1368
+ readonly phase: 'plan_refining';
1369
+ readonly round: number;
1362
1370
  } | {
1363
1371
  readonly phase: 'awaiting_approval';
1364
1372
  readonly planSummary: PlanSummary;
@@ -1444,7 +1452,7 @@ export interface CrossFeatureVerification {
1444
1452
  readonly verdict: 'PASS' | 'FAIL' | 'PARTIAL';
1445
1453
  }
1446
1454
  export interface CrossFeatureCheck {
1447
- readonly type: 'api_route_exists' | 'page_references_valid' | 'schema_entity_exists' | 'dependency_consistency' | 'ipc_channel_exists';
1455
+ readonly type: 'api_route_exists' | 'page_references_valid' | 'schema_entity_exists' | 'dependency_consistency' | 'ipc_channel_exists' | 'link_integrity' | 'import_path_valid' | 'package_deps_complete' | 'no_self_fetch' | 'typescript_compiles' | 'env_vars_complete' | 'asset_refs_valid';
1448
1456
  readonly description: string;
1449
1457
  readonly verdict: 'PASS' | 'FAIL';
1450
1458
  readonly evidence: string;
@@ -1512,6 +1520,35 @@ export interface AppCreateOptions {
1512
1520
  readonly skipBuildVerification?: boolean;
1513
1521
  readonly autoApprove?: boolean;
1514
1522
  readonly skipFunctionalTesting?: boolean;
1523
+ readonly skipPlanQuestions?: boolean;
1524
+ }
1525
+ export interface PlanQuestionOption {
1526
+ label: string;
1527
+ description: string;
1528
+ }
1529
+ export interface PlanQuestion {
1530
+ id: string;
1531
+ question: string;
1532
+ header: string;
1533
+ options: PlanQuestionOption[];
1534
+ multiSelect: boolean;
1535
+ }
1536
+ export interface PlanAnswer {
1537
+ questionId: string;
1538
+ selectedOptions: string[];
1539
+ customText?: string;
1540
+ }
1541
+ export interface PlanRefinementRound {
1542
+ round: number;
1543
+ questions: PlanQuestion[];
1544
+ answers: PlanAnswer[];
1545
+ confidence: number;
1546
+ }
1547
+ export interface PlanModeState {
1548
+ rounds: PlanRefinementRound[];
1549
+ currentConfidence: number;
1550
+ maxRounds: number;
1551
+ status: 'asking' | 'refining' | 'confident' | 'approved';
1515
1552
  }
1516
1553
  export interface PlanSummary {
1517
1554
  readonly appName: string;
@@ -1549,7 +1586,7 @@ export interface PlanModification {
1549
1586
  }
1550
1587
  export interface FunctionalTest {
1551
1588
  readonly id: string;
1552
- readonly type: 'api_route' | 'page_load' | 'auth_flow';
1589
+ readonly type: 'api_route' | 'page_load' | 'auth_flow' | 'data_persistence';
1553
1590
  readonly name: string;
1554
1591
  readonly method?: string;
1555
1592
  readonly path: string;
@@ -1557,6 +1594,8 @@ export interface FunctionalTest {
1557
1594
  readonly expectedStatusRange: [number, number];
1558
1595
  readonly errorPatterns: readonly string[];
1559
1596
  readonly featureId?: string;
1597
+ readonly verifyPath?: string;
1598
+ readonly idField?: string;
1560
1599
  }
1561
1600
  export interface FunctionalTestExecution {
1562
1601
  readonly test: FunctionalTest;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tryassay",
3
- "version": "0.21.0",
3
+ "version": "0.21.1",
4
4
  "description": "AI code verification CLI — find bugs that tests miss, linters ignore, and code review overlooks",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",