e2e-test-scenarios

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

e2e-test-scenarios

端到端测试场景

Instructions

使用说明

This skill provides comprehensive end-to-end testing capabilities for Supabase applications, covering database operations, authentication flows, AI features (pgvector), realtime subscriptions, and production readiness validation.
本技能为Supabase应用提供全面的端到端测试能力,涵盖数据库操作、认证流程、AI功能(pgvector)、实时订阅和生产就绪性验证。

Phase 1: Setup Test Environment

第一阶段:搭建测试环境

  1. Initialize test environment:
    bash
    bash scripts/setup-test-env.sh
    This creates:
    • Test database configuration
    • Environment variables for testing
    • Test data fixtures
    • CI/CD configuration templates
  2. Configure test database:
    • Use dedicated test project or local Supabase instance
    • Never run tests against production
    • Set
      SUPABASE_TEST_URL
      and
      SUPABASE_TEST_ANON_KEY
    • Enable pgTAP extension for database tests
  3. Install dependencies:
    bash
    npm install --save-dev @supabase/supabase-js jest @types/jest
    # or
    pnpm add -D @supabase/supabase-js vitest
  1. 初始化测试环境:
    bash
    bash scripts/setup-test-env.sh
    该脚本会创建:
    • 测试数据库配置
    • 测试用环境变量
    • 测试数据预制件
    • CI/CD配置模板
  2. 配置测试数据库:
    • 使用专用测试项目或本地Supabase实例
    • 切勿在生产环境运行测试
    • 设置
      SUPABASE_TEST_URL
      SUPABASE_TEST_ANON_KEY
    • 启用pgTAP扩展以进行数据库测试
  3. 安装依赖:
    bash
    npm install --save-dev @supabase/supabase-js jest @types/jest
    # 或
    pnpm add -D @supabase/supabase-js vitest

Phase 2: Database Workflow Testing

第二阶段:数据库工作流测试

Test complete database operations from schema to queries:
  1. Run database E2E tests:
    bash
    bash scripts/test-database-workflow.sh
    This validates:
    • Schema creation and migrations
    • Table relationships and foreign keys
    • RLS policies enforcement
    • Triggers and functions
    • Data integrity constraints
  2. Use pgTAP for SQL-level tests:
    bash
    # Run all database tests
    supabase test db
    
    # Run specific test file
    supabase test db --file tests/database/users.test.sql
  3. Test schema migrations:
    bash
    # Test migration up/down
    supabase db reset --linked
    supabase db push
    
    # Verify schema state
    bash scripts/validate-schema.sh
测试从模式到查询的完整数据库操作:
  1. 运行数据库端到端测试:
    bash
    bash scripts/test-database-workflow.sh
    该脚本会验证:
    • 模式创建和迁移
    • 表关系和外键
    • RLS策略执行
    • 触发器和函数
    • 数据完整性约束
  2. 使用pgTAP进行SQL级测试:
    bash
    # 运行所有数据库测试
    supabase test db
    
    # 运行指定测试文件
    supabase test db --file tests/database/users.test.sql
  3. 测试模式迁移:
    bash
    # 测试迁移的升级/回滚
    supabase db reset --linked
    supabase db push
    
    # 验证模式状态
    bash scripts/validate-schema.sh

Phase 3: Authentication Flow Testing

第三阶段:认证流程测试

Test complete auth workflows end-to-end:
  1. Run authentication E2E tests:
    bash
    bash scripts/test-auth-workflow.sh
    This validates:
    • Email/password signup and login
    • Magic link authentication
    • OAuth provider flows (Google, GitHub, etc.)
    • Session management and refresh
    • Password reset flows
    • Email verification
    • Multi-factor authentication (MFA)
  2. Test RLS with authenticated users:
    typescript
    // See templates/auth-tests.ts for complete examples
    test('authenticated users see only their data', async () => {
      const { data, error } = await supabase
        .from('private_notes')
        .select('*');
    
      expect(data).toHaveLength(userNoteCount);
      expect(data.every(note => note.user_id === userId)).toBe(true);
    });
  3. Test session persistence:
    bash
    # Run session validation tests
    npm test -- auth-session.test.ts
端到端测试完整的认证工作流:
  1. 运行认证端到端测试:
    bash
    bash scripts/test-auth-workflow.sh
    该脚本会验证:
    • 邮箱/密码注册和登录
    • 魔术链接认证
    • OAuth提供商流程(Google、GitHub等)
    • 会话管理和刷新
    • 密码重置流程
    • 邮箱验证
    • 多因素认证(MFA)
  2. 测试已认证用户的RLS:
    typescript
    // 完整示例请查看templates/auth-tests.ts
    test('已认证用户仅能查看自己的数据', async () => {
      const { data, error } = await supabase
        .from('private_notes')
        .select('*');
    
      expect(data).toHaveLength(userNoteCount);
      expect(data.every(note => note.user_id === userId)).toBe(true);
    });
  3. 测试会话持久性:
    bash
    # 运行会话验证测试
    npm test -- auth-session.test.ts

Phase 4: AI Features Testing (pgvector)

第四阶段:AI功能测试(pgvector)

Test vector search and semantic operations:
  1. Run AI features E2E tests:
    bash
    bash scripts/test-ai-features.sh
    This validates:
    • pgvector extension is enabled
    • Embedding storage and retrieval
    • Vector similarity search accuracy
    • HNSW/IVFFlat index performance
    • Hybrid search (keyword + semantic)
    • Embedding dimension consistency
  2. Test vector search accuracy:
    typescript
    // See templates/vector-search-tests.ts
    test('semantic search returns relevant results', async () => {
      const queryEmbedding = await generateEmbedding('machine learning');
    
      const { data } = await supabase.rpc('match_documents', {
        query_embedding: queryEmbedding
        match_threshold: 0.7
        match_count: 5
      });
    
      expect(data.length).toBeGreaterThan(0);
      expect(data[0].similarity).toBeGreaterThan(0.7);
    });
  3. Test embedding operations:
    bash
    # Validate embedding pipeline
    npm test -- embedding-workflow.test.ts
  4. Performance benchmarking:
    bash
    # Run performance tests
    bash scripts/benchmark-vector-search.sh [TABLE_NAME] [VECTOR_DIM]
测试向量搜索和语义操作:
  1. 运行AI功能端到端测试:
    bash
    bash scripts/test-ai-features.sh
    该脚本会验证:
    • pgvector扩展已启用
    • 嵌入向量的存储和检索
    • 向量相似度搜索的准确性
    • HNSW/IVFFlat索引性能
    • 混合搜索(关键词+语义)
    • 嵌入向量维度一致性
  2. 测试向量搜索准确性:
    typescript
    // 示例请查看templates/vector-search-tests.ts
    test('语义搜索返回相关结果', async () => {
      const queryEmbedding = await generateEmbedding('machine learning');
    
      const { data } = await supabase.rpc('match_documents', {
        query_embedding: queryEmbedding
        match_threshold: 0.7
        match_count: 5
      });
    
      expect(data.length).toBeGreaterThan(0);
      expect(data[0].similarity).toBeGreaterThan(0.7);
    });
  3. 测试嵌入向量操作:
    bash
    # 验证嵌入向量流水线
    npm test -- embedding-workflow.test.ts
  4. 性能基准测试:
    bash
    # 运行性能测试
    bash scripts/benchmark-vector-search.sh [TABLE_NAME] [VECTOR_DIM]

Phase 5: Realtime Features Testing

第五阶段:实时功能测试

Test realtime subscriptions and presence:
  1. Run realtime E2E tests:
    bash
    bash scripts/test-realtime-workflow.sh
    This validates:
    • Database change subscriptions
    • Broadcast messaging
    • Presence tracking
    • Connection handling
    • Reconnection logic
    • Subscription cleanup
  2. Test database change subscriptions:
    typescript
    // See templates/realtime-tests.ts
    test('receives real-time updates on insert', async () => {
      const updates = [];
    
      const subscription = supabase
        .channel('test-channel')
        .on('postgres_changes'
          { event: 'INSERT', schema: 'public', table: 'messages' }
          (payload) => updates.push(payload)
        )
        .subscribe();
    
      await supabase.from('messages').insert({ content: 'test' });
    
      await waitFor(() => expect(updates).toHaveLength(1));
    });
  3. Test presence and broadcast:
    bash
    # Run presence tests
    npm test -- presence.test.ts
测试实时订阅和在线状态跟踪:
  1. 运行实时端到端测试:
    bash
    bash scripts/test-realtime-workflow.sh
    该脚本会验证:
    • 数据库变更订阅
    • 广播消息
    • 在线状态跟踪
    • 连接处理
    • 重连逻辑
    • 订阅清理
  2. 测试数据库变更订阅:
    typescript
    // 示例请查看templates/realtime-tests.ts
    test('接收插入操作的实时更新', async () => {
      const updates = [];
    
      const subscription = supabase
        .channel('test-channel')
        .on('postgres_changes'
          { event: 'INSERT', schema: 'public', table: 'messages' }
          (payload) => updates.push(payload)
        )
        .subscribe();
    
      await supabase.from('messages').insert({ content: 'test' });
    
      await waitFor(() => expect(updates).toHaveLength(1));
    });
  3. 测试在线状态和广播:
    bash
    # 运行在线状态测试
    npm test -- presence.test.ts

Phase 6: Complete Integration Tests

第六阶段:完整集成测试

Run full workflow tests simulating real user scenarios:
  1. Execute complete E2E test suite:
    bash
    bash scripts/run-e2e-tests.sh
    This runs:
    • User signup → profile creation → data CRUD → logout
    • Document upload → embedding generation → semantic search
    • Chat message → realtime delivery → read receipts
    • Multi-user collaboration scenarios
    • Error handling and recovery
  2. Run test scenarios in parallel:
    bash
    # Run all test suites
    npm test -- --maxWorkers=4
    
    # Run specific workflow
    npm test -- workflows/document-rag.test.ts
  3. Generate test reports:
    bash
    # Generate coverage report
    npm test -- --coverage
    
    # Generate HTML report
    npm test -- --coverage --coverageReporters=html
运行模拟真实用户场景的全工作流测试:
  1. 执行完整的端到端测试套件:
    bash
    bash scripts/run-e2e-tests.sh
    该脚本会运行:
    • 用户注册→创建个人资料→数据增删改查→登出
    • 文档上传→嵌入向量生成→语义搜索
    • 聊天消息→实时投递→已读回执
    • 多用户协作场景
    • 错误处理和恢复
  2. 并行运行测试场景:
    bash
    # 运行所有测试套件
    npm test -- --maxWorkers=4
    
    # 运行指定工作流
    npm test -- workflows/document-rag.test.ts
  3. 生成测试报告:
    bash
    # 生成覆盖率报告
    npm test -- --coverage
    
    # 生成HTML报告
    npm test -- --coverage --coverageReporters=html

Phase 7: CI/CD Integration

第七阶段:CI/CD集成

Setup automated testing in CI/CD pipelines:
  1. Use GitHub Actions template:
    bash
    # Copy CI config to your repo
    cp templates/ci-config.yml .github/workflows/supabase-tests.yml
  2. Configure test secrets:
    • Add
      SUPABASE_TEST_URL
      to GitHub secrets
    • Add
      SUPABASE_TEST_ANON_KEY
      to GitHub secrets
    • Add
      SUPABASE_TEST_SERVICE_ROLE_KEY
      for admin tests
  3. Run tests on pull requests:
    • Automatic test execution on PR creation
    • Blocking PRs if tests fail
    • Test result reporting in PR comments
在CI/CD流水线中设置自动化测试:
  1. 使用GitHub Actions模板:
    bash
    # 将CI配置复制到你的仓库
    cp templates/ci-config.yml .github/workflows/supabase-tests.yml
  2. 配置测试密钥:
    • SUPABASE_TEST_URL
      添加到GitHub密钥
    • SUPABASE_TEST_ANON_KEY
      添加到GitHub密钥
    • SUPABASE_TEST_SERVICE_ROLE_KEY
      添加到GitHub密钥以进行管理员测试
  3. 在拉取请求时运行测试:
    • 创建PR时自动执行测试
    • 测试失败时阻止PR合并
    • 在PR评论中报告测试结果

Phase 8: Cleanup and Teardown

第八阶段:清理和收尾

Clean up test resources after testing:
  1. Run cleanup script:
    bash
    bash scripts/cleanup-test-resources.sh
    This removes:
    • Test users and sessions
    • Test data from tables
    • Temporary test databases
    • Test file uploads
  2. Reset test database:
    bash
    # Reset to clean state
    supabase db reset --linked
    
    # Or use migration-based reset
    bash scripts/reset-test-db.sh
测试完成后清理测试资源:
  1. 运行清理脚本:
    bash
    bash scripts/cleanup-test-resources.sh
    该脚本会移除:
    • 测试用户和会话
    • 表中的测试数据
    • 临时测试数据库
    • 测试文件上传
  2. 重置测试数据库:
    bash
    # 重置为干净状态
    supabase db reset --linked
    
    # 或使用基于迁移的重置
    bash scripts/reset-test-db.sh

Test Coverage Areas

测试覆盖范围

Database Testing

数据库测试

  • Schema Validation: Table structure, columns, constraints
  • Migration Testing: Up/down migrations, rollback safety
  • RLS Policies: Access control, policy enforcement
  • Functions & Triggers: Database logic, event handlers
  • Performance: Query optimization, index usage
  • 模式验证:表结构、列、约束
  • 迁移测试:升级/回滚迁移、回滚安全性
  • RLS策略:访问控制、策略执行
  • 函数与触发器:数据库逻辑、事件处理程序
  • 性能:查询优化、索引使用

Authentication Testing

认证测试

  • User Flows: Signup, login, logout, password reset
  • Provider Integration: OAuth, magic links, phone auth
  • Session Management: Token refresh, expiration, persistence
  • MFA: Setup, verification, recovery codes
  • Security: Rate limiting, brute force protection
  • 用户流程:注册、登录、登出、密码重置
  • 提供商集成:OAuth、魔术链接、电话认证
  • 会话管理:令牌刷新、过期、持久性
  • MFA:设置、验证、恢复代码
  • 安全性:速率限制、暴力破解防护

AI Features Testing

AI功能测试

  • Vector Operations: Insert, update, delete embeddings
  • Similarity Search: Accuracy, relevance, threshold tuning
  • Index Performance: HNSW vs IVFFlat, query speed
  • Hybrid Search: Combined keyword and semantic search
  • Dimension Validation: Embedding size consistency
  • 向量操作:嵌入向量的插入、更新、删除
  • 相似度搜索:准确性、相关性、阈值调整
  • 索引性能:HNSW vs IVFFlat、查询速度
  • 混合搜索:关键词与语义搜索结合
  • 维度验证:嵌入向量大小一致性

Realtime Testing

实时测试

  • Subscriptions: Database changes, broadcasts, presence
  • Connection Management: Connect, disconnect, reconnect
  • Message Delivery: Ordering, reliability, deduplication
  • Performance: Latency, throughput, concurrent users
  • Cleanup: Subscription disposal, memory leaks
  • 订阅:数据库变更、广播、在线状态
  • 连接管理:连接、断开、重连
  • 消息投递:顺序、可靠性、去重
  • 性能:延迟、吞吐量、并发用户
  • 清理:订阅销毁、内存泄漏

Integration Testing

集成测试

  • Multi-Component: Auth + Database + Storage
  • User Journeys: Complete workflows end-to-end
  • Error Scenarios: Network failures, invalid data, rate limits
  • Edge Cases: Concurrent updates, race conditions, timeouts
  • 多组件:认证+数据库+存储
  • 用户旅程:端到端完整工作流
  • 错误场景:网络故障、无效数据、速率限制
  • 边缘情况:并发更新、竞争条件、超时

Test Data Strategies

测试数据策略

Fixture Management

预制件管理

typescript
// Load test fixtures
const testData = await loadFixtures('users', 'posts', 'comments');

// Seed database
await seedDatabase(testData);

// Cleanup after tests
afterAll(async () => {
  await cleanupFixtures();
});
typescript
// 加载测试预制件
const testData = await loadFixtures('users', 'posts', 'comments');

// 填充数据库
await seedDatabase(testData);

// 测试后清理
afterAll(async () => {
  await cleanupFixtures();
});

Factory Patterns

工厂模式

typescript
// Create test users with factories
const user = await createTestUser({
  email: 'test@example.com'
  metadata: { role: 'admin' }
});

// Create related data
const posts = await createTestPosts(user.id, 5);
typescript
// 使用工厂创建测试用户
const user = await createTestUser({
  email: 'test@example.com'
  metadata: { role: 'admin' }
});

// 创建关联数据
const posts = await createTestPosts(user.id, 5);

Isolation Strategies

隔离策略

  • Test Database: Dedicated test project
  • Transaction Rollback: Rollback after each test
  • Namespace Prefixes:
    test_
    prefix for test data
  • Time-based Cleanup: Delete data older than X hours
  • 测试数据库:专用测试项目
  • 事务回滚:每次测试后回滚
  • 命名空间前缀:测试数据使用
    test_
    前缀
  • 基于时间的清理:删除早于X小时的数据

Performance Benchmarks

性能基准

Query Performance Targets

查询性能目标

  • Simple queries: < 50ms
  • Vector similarity search: < 100ms
  • Hybrid search: < 200ms
  • Complex joins: < 300ms
  • 简单查询:< 50ms
  • 向量相似度搜索:< 100ms
  • 混合搜索:< 200ms
  • 复杂连接:< 300ms

Realtime Latency Targets

实时延迟目标

  • Message delivery: < 100ms
  • Presence updates: < 200ms
  • Database changes: < 500ms
  • 消息投递:< 100ms
  • 在线状态更新:< 200ms
  • 数据库变更:< 500ms

Throughput Targets

吞吐量目标

  • Authenticated requests: 100+ req/s
  • Vector searches: 50+ req/s
  • Realtime messages: 1000+ msg/s
  • 认证请求:100+ 次/秒
  • 向量搜索:50+ 次/秒
  • 实时消息:1000+ 条/秒

Common Test Patterns

常见测试模式

Pattern 1: Auth-Protected Resource Test

模式1:受认证保护的资源测试

typescript
test('authenticated user CRUD operations', async () => {
  // 1. Sign up user
  const { user } = await supabase.auth.signUp({
    email: 'test@example.com'
    password: 'test123'
  });

  // 2. Create resource
  const { data } = await supabase
    .from('notes')
    .insert({ content: 'test note' })
    .select()
    .single();

  // 3. Verify ownership
  expect(data.user_id).toBe(user.id);

  // 4. Update resource
  await supabase
    .from('notes')
    .update({ content: 'updated' })
    .eq('id', data.id);

  // 5. Delete resource
  await supabase.from('notes').delete().eq('id', data.id);
});
typescript
test('已认证用户的CRUD操作', async () => {
  // 1. 用户注册
  const { user } = await supabase.auth.signUp({
    email: 'test@example.com'
    password: 'test123'
  });

  // 2. 创建资源
  const { data } = await supabase
    .from('notes')
    .insert({ content: 'test note' })
    .select()
    .single();

  // 3. 验证所有权
  expect(data.user_id).toBe(user.id);

  // 4. 更新资源
  await supabase
    .from('notes')
    .update({ content: 'updated' })
    .eq('id', data.id);

  // 5. 删除资源
  await supabase.from('notes').delete().eq('id', data.id);
});

Pattern 2: Vector Search Workflow Test

模式2:向量搜索工作流测试

typescript
test('document RAG workflow', async () => {
  // 1. Upload document
  const doc = await uploadDocument('test.pdf');

  // 2. Generate embeddings
  const chunks = await chunkDocument(doc);
  const embeddings = await generateEmbeddings(chunks);

  // 3. Store in database
  await supabase.from('document_chunks').insert(
    chunks.map((chunk, i) => ({
      content: chunk
      embedding: embeddings[i]
      document_id: doc.id
    }))
  );

  // 4. Perform semantic search
  const query = 'What is the main topic?';
  const queryEmbedding = await generateEmbedding(query);

  const { data } = await supabase.rpc('match_documents', {
    query_embedding: queryEmbedding
    match_count: 5
  });

  // 5. Verify results
  expect(data.length).toBeGreaterThan(0);
  expect(data[0].similarity).toBeGreaterThan(0.7);
});
typescript
test('文档RAG工作流', async () => {
  // 1. 上传文档
  const doc = await uploadDocument('test.pdf');

  // 2. 生成嵌入向量
  const chunks = await chunkDocument(doc);
  const embeddings = await generateEmbeddings(chunks);

  // 3. 存储到数据库
  await supabase.from('document_chunks').insert(
    chunks.map((chunk, i) => ({
      content: chunk
      embedding: embeddings[i]
      document_id: doc.id
    }))
  );

  // 4. 执行语义搜索
  const query = '主要主题是什么?';
  const queryEmbedding = await generateEmbedding(query);

  const { data } = await supabase.rpc('match_documents', {
    query_embedding: queryEmbedding
    match_count: 5
  });

  // 5. 验证结果
  expect(data.length).toBeGreaterThan(0);
  expect(data[0].similarity).toBeGreaterThan(0.7);
});

Pattern 3: Realtime Collaboration Test

模式3:实时协作测试

typescript
test('multi-user realtime chat', async () => {
  // 1. Create two users
  const user1 = await createTestUser();
  const user2 = await createTestUser();

  // 2. Subscribe to messages
  const user1Messages = [];
  const user2Messages = [];

  const sub1 = await subscribeToMessages(user1, user1Messages);
  const sub2 = await subscribeToMessages(user2, user2Messages);

  // 3. User 1 sends message
  await sendMessage(user1, 'Hello from user 1');

  // 4. Verify both users receive it
  await waitFor(() => {
    expect(user1Messages).toHaveLength(1);
    expect(user2Messages).toHaveLength(1);
  });

  // 5. Cleanup subscriptions
  await sub1.unsubscribe();
  await sub2.unsubscribe();
});
typescript
test('多用户实时聊天', async () => {
  // 1. 创建两个用户
  const user1 = await createTestUser();
  const user2 = await createTestUser();

  // 2. 订阅消息
  const user1Messages = [];
  const user2Messages = [];

  const sub1 = await subscribeToMessages(user1, user1Messages);
  const sub2 = await subscribeToMessages(user2, user2Messages);

  // 3. 用户1发送消息
  await sendMessage(user1, '来自用户1的问候');

  // 4. 验证两个用户都收到消息
  await waitFor(() => {
    expect(user1Messages).toHaveLength(1);
    expect(user2Messages).toHaveLength(1);
  });

  // 5. 清理订阅
  await sub1.unsubscribe();
  await sub2.unsubscribe();
});

Troubleshooting

故障排除

Tests Failing Intermittently

测试间歇性失败

  • Race Conditions: Add proper wait conditions
  • Async Issues: Ensure all promises are awaited
  • Cleanup: Verify test isolation and cleanup
  • Timeouts: Increase timeout for slow operations
  • 竞争条件:添加适当的等待条件
  • 异步问题:确保所有Promise都被await
  • 清理:验证测试隔离和清理步骤
  • 超时:为慢速操作增加超时时间

Tests Passing Locally but Failing in CI

本地测试通过但CI中失败

  • Environment: Verify env variables in CI
  • Timing: CI may be slower, increase timeouts
  • Parallelization: Check for shared state issues
  • Dependencies: Ensure all deps are installed
  • 环境:验证CI中的环境变量
  • 计时:CI可能更慢,增加超时时间
  • 并行化:检查共享状态问题
  • 依赖:确保所有依赖都已安装

Slow Test Execution

测试执行缓慢

  • Parallel Tests: Use
    --maxWorkers
    flag
  • Test Selection: Run only changed tests
  • Database Reset: Use faster cleanup methods
  • Mocking: Mock external services
  • 并行测试:使用
    --maxWorkers
    标志
  • 测试选择:仅运行变更的测试
  • 数据库重置:使用更快的清理方法
  • 模拟:模拟外部服务

Database Connection Issues

数据库连接问题

  • Connection Pooling: Limit concurrent connections
  • Cleanup: Properly close connections after tests
  • Retries: Implement connection retry logic
  • Timeouts: Set appropriate connection timeouts
  • 连接池:限制并发连接数
  • 清理:测试后正确关闭连接
  • 重试:实现连接重试逻辑
  • 超时:设置合适的连接超时

Files Reference

文件参考

Scripts:
  • scripts/setup-test-env.sh
    - Initialize test environment
  • scripts/run-e2e-tests.sh
    - Execute complete test suite
  • scripts/test-database-workflow.sh
    - Database E2E tests
  • scripts/test-auth-workflow.sh
    - Authentication E2E tests
  • scripts/test-ai-features.sh
    - Vector search E2E tests
  • scripts/test-realtime-workflow.sh
    - Realtime E2E tests
  • scripts/cleanup-test-resources.sh
    - Clean up test data
  • scripts/validate-schema.sh
    - Validate database schema
  • scripts/benchmark-vector-search.sh
    - Performance benchmarks
  • scripts/reset-test-db.sh
    - Reset test database
Templates:
  • templates/test-suite-template.ts
    - Jest/Vitest boilerplate
  • templates/database-tests.ts
    - Database operation tests
  • templates/auth-tests.ts
    - Authentication flow tests
  • templates/vector-search-tests.ts
    - pgvector tests
  • templates/realtime-tests.ts
    - Realtime subscription tests
  • templates/ci-config.yml
    - GitHub Actions CI/CD
  • templates/jest.config.js
    - Jest configuration
  • templates/vitest.config.ts
    - Vitest configuration
Examples:
  • examples/complete-test-workflow.md
    - Full E2E testing guide
  • examples/ci-cd-integration.md
    - CI/CD setup guide
  • examples/test-data-strategies.md
    - Test data management
  • examples/performance-benchmarks.md
    - Performance testing
  • examples/mocking-strategies.md
    - Mocking external services

Plugin: supabase Version: 1.0.0 Last Updated: 2025-10-26
脚本:
  • scripts/setup-test-env.sh
    - 初始化测试环境
  • scripts/run-e2e-tests.sh
    - 执行完整测试套件
  • scripts/test-database-workflow.sh
    - 数据库端到端测试
  • scripts/test-auth-workflow.sh
    - 认证端到端测试
  • scripts/test-ai-features.sh
    - 向量搜索端到端测试
  • scripts/test-realtime-workflow.sh
    - 实时功能端到端测试
  • scripts/cleanup-test-resources.sh
    - 清理测试数据
  • scripts/validate-schema.sh
    - 验证数据库模式
  • scripts/benchmark-vector-search.sh
    - 性能基准测试
  • scripts/reset-test-db.sh
    - 重置测试数据库
模板:
  • templates/test-suite-template.ts
    - Jest/Vitest模板
  • templates/database-tests.ts
    - 数据库操作测试
  • templates/auth-tests.ts
    - 认证流程测试
  • templates/vector-search-tests.ts
    - pgvector测试
  • templates/realtime-tests.ts
    - 实时订阅测试
  • templates/ci-config.yml
    - GitHub Actions CI/CD配置
  • templates/jest.config.js
    - Jest配置
  • templates/vitest.config.ts
    - Vitest配置
示例:
  • examples/complete-test-workflow.md
    - 完整E2E测试指南
  • examples/ci-cd-integration.md
    - CI/CD设置指南
  • examples/test-data-strategies.md
    - 测试数据管理
  • examples/performance-benchmarks.md
    - 性能测试
  • examples/mocking-strategies.md
    - 外部服务模拟

插件: supabase 版本: 1.0.0 最后更新: 2025-10-26