intellitester 0.2.52 → 0.2.54

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.
package/README.md CHANGED
@@ -398,3 +398,148 @@ All workflows in a pipeline share the same browser context, preserving:
398
398
  - Cookies and session storage
399
399
  - Authentication state
400
400
  - Local storage data
401
+
402
+ ## Responsive Testing (Viewport Sizes)
403
+
404
+ IntelliTester can run tests across multiple viewport sizes to ensure your application works correctly on different devices.
405
+
406
+ ### Named Sizes
407
+
408
+ Use Tailwind-style breakpoint names:
409
+
410
+ | Size | Width | Height | Device Type |
411
+ |------|-------|--------|-------------|
412
+ | `xs` | 320 | 568 | Mobile portrait |
413
+ | `sm` | 640 | 800 | Small tablet |
414
+ | `md` | 768 | 1024 | Tablet |
415
+ | `lg` | 1024 | 768 | Desktop |
416
+ | `xl` | 1280 | 720 | Large desktop |
417
+
418
+ ### Custom Sizes
419
+
420
+ Use `WIDTHxHEIGHT` format for custom dimensions:
421
+
422
+ ```bash
423
+ intellitester run tests/ --test-sizes 1920x1080,375x812,414x896
424
+ ```
425
+
426
+ ### CLI Usage
427
+
428
+ ```bash
429
+ # Run tests at all breakpoints
430
+ intellitester run tests/ --test-sizes xs,sm,md,lg,xl
431
+
432
+ # Run at specific sizes
433
+ intellitester run app.workflow.yaml --test-sizes xs,md,xl
434
+
435
+ # Mix named and custom sizes
436
+ intellitester run tests/ --test-sizes xs,1920x1080
437
+ ```
438
+
439
+ ### YAML Configuration
440
+
441
+ **Workflow-level:**
442
+
443
+ ```yaml
444
+ name: Responsive Tests
445
+ platform: web
446
+ config:
447
+ web:
448
+ baseUrl: http://localhost:3000
449
+ testSizes: ['xs', 'sm', 'md', 'lg', 'xl']
450
+ tests:
451
+ - file: ./homepage.test.yaml
452
+ - file: ./navigation.test.yaml
453
+ ```
454
+
455
+ **Pipeline-level:**
456
+
457
+ ```yaml
458
+ name: Full Responsive Suite
459
+ platform: web
460
+ config:
461
+ web:
462
+ testSizes: ['xs', 'md', 'xl']
463
+ workflows:
464
+ - file: ./auth.workflow.yaml
465
+ - file: ./dashboard.workflow.yaml
466
+ ```
467
+
468
+ ### Behavior
469
+
470
+ - Tests run once per specified viewport size
471
+ - Results are prefixed with size when multiple sizes are tested: `[xs] test.yaml`, `[md] test.yaml`
472
+ - Browser session (cookies, authentication state) is preserved across sizes
473
+ - Browser context is recreated for each size with new viewport dimensions
474
+
475
+ ## Configuration Inheritance
476
+
477
+ IntelliTester uses a cascading configuration system. Lower-level configuration takes precedence over higher levels.
478
+
479
+ ### Priority Order
480
+
481
+ ```
482
+ Test Config > Workflow Config > Pipeline Config > Global Config > Defaults
483
+ ↑ ↑ ↑ ↑ ↑
484
+ Highest Lowest
485
+ ```
486
+
487
+ ### Configuration Levels
488
+
489
+ **1. Global Config (`intellitester.yaml`):**
490
+
491
+ ```yaml
492
+ defaults:
493
+ timeout: 30000
494
+ screenshots: on-failure
495
+
496
+ platforms:
497
+ web:
498
+ baseUrl: http://localhost:3000
499
+ headless: true
500
+ ```
501
+
502
+ **2. Pipeline Config (`.pipeline.yaml`):**
503
+
504
+ ```yaml
505
+ config:
506
+ web:
507
+ headless: false # Overrides global
508
+ testSizes: ['xs', 'md', 'xl']
509
+ ```
510
+
511
+ **3. Workflow Config (`.workflow.yaml`):**
512
+
513
+ ```yaml
514
+ config:
515
+ web:
516
+ baseUrl: http://localhost:4000 # Overrides pipeline/global
517
+ ```
518
+
519
+ **4. Test Config (`.test.yaml`):**
520
+
521
+ ```yaml
522
+ config:
523
+ defaults:
524
+ timeout: 60000 # Overrides for this test only
525
+ ```
526
+
527
+ ### Configuration Options
528
+
529
+ | Setting | Test | Workflow | Pipeline | Global |
530
+ |---------|------|----------|----------|--------|
531
+ | `baseUrl` | Yes | Yes | Yes | Yes |
532
+ | `browser` | Yes | Yes | Yes | Yes |
533
+ | `headless` | Yes | Yes | Yes | Yes |
534
+ | `timeout` | Yes | Yes | Yes | Yes |
535
+ | `testSizes` | - | Yes | Yes | - |
536
+ | `webServer` | - | Yes | Yes | Yes |
537
+ | `appwrite` | Yes | Yes | Yes | Yes |
538
+ | `cleanup` | Yes | Yes | Yes | Yes |
539
+ | `email` | Yes | Yes | Yes | Yes |
540
+
541
+ ### Important Notes
542
+
543
+ - Configuration uses **simple override**, not deep merge
544
+ - CLI flags (e.g., `--headed`, `--test-sizes`) override all YAML configuration
545
+ - Environment variables (`${VAR_NAME}`) are resolved at load time
@@ -1217,11 +1217,12 @@ function detectFramework(pkg) {
1217
1217
  }
1218
1218
  async function detectPackageManager(cwd) {
1219
1219
  const hasDenoLock = await fs__namespace.stat(path4__namespace.join(cwd, "deno.lock")).catch(() => null);
1220
- const hasBunLock = await fs__namespace.stat(path4__namespace.join(cwd, "bun.lockb")).catch(() => null);
1220
+ const hasBunLockb = await fs__namespace.stat(path4__namespace.join(cwd, "bun.lockb")).catch(() => null);
1221
+ const hasBunLock = await fs__namespace.stat(path4__namespace.join(cwd, "bun.lock")).catch(() => null);
1221
1222
  const hasPnpmLock = await fs__namespace.stat(path4__namespace.join(cwd, "pnpm-lock.yaml")).catch(() => null);
1222
1223
  const hasYarnLock = await fs__namespace.stat(path4__namespace.join(cwd, "yarn.lock")).catch(() => null);
1223
1224
  if (hasDenoLock) return "deno";
1224
- if (hasBunLock) return "bun";
1225
+ if (hasBunLockb || hasBunLock) return "bun";
1225
1226
  if (hasPnpmLock) return "pnpm";
1226
1227
  if (hasYarnLock) return "yarn";
1227
1228
  return "npm";
@@ -3838,5 +3839,5 @@ exports.runWorkflowWithContext = runWorkflowWithContext;
3838
3839
  exports.setupAppwriteTracking = setupAppwriteTracking;
3839
3840
  exports.startTrackingServer = startTrackingServer;
3840
3841
  exports.webServerManager = webServerManager;
3841
- //# sourceMappingURL=chunk-ZXCFOTWX.cjs.map
3842
- //# sourceMappingURL=chunk-ZXCFOTWX.cjs.map
3842
+ //# sourceMappingURL=chunk-5NKXR4UV.cjs.map
3843
+ //# sourceMappingURL=chunk-5NKXR4UV.cjs.map