testing-qa

- Use Jest for unit tests

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "testing-qa" with this command: npx skills add santiagoxor/pintureria-digital/santiagoxor-pintureria-digital-testing-qa

Testing and QA

Quick Start

When writing tests:

  • Use Jest for unit tests

  • Use React Testing Library for component tests

  • Use Playwright for E2E tests

  • Use jest-axe for accessibility tests

  • Maintain >70% coverage

Key Files

  • jest.config.js

  • Jest configuration

  • playwright.config.ts

  • Playwright configuration

  • src/tests/

  • Unit and integration tests

  • e2e/

  • E2E tests

  • mocks/

  • Shared mocks

Common Patterns

Component Test

import { render, screen } from '@testing-library/react'; import { ProductCard } from '@/components/Product/ProductCard';

describe('ProductCard', () => { const mockProduct = { id: '1', name: 'Pintura Blanca', price: 5000, image: '/images/product.jpg', };

it('should render product information', () => { render(<ProductCard product={mockProduct} />);

expect(screen.getByText('Pintura Blanca')).toBeInTheDocument();
expect(screen.getByText('$5,000')).toBeInTheDocument();

}); });

API Test

import { GET } from '@/app/api/products/route'; import { NextRequest } from 'next/server';

describe('/api/products', () => { it('should return products for tenant', async () => { const request = new NextRequest('http://localhost/api/products', { headers: { 'x-tenant-id': 'test-tenant-id', }, });

const response = await GET(request);
const data = await response.json();

expect(response.status).toBe(200);
expect(Array.isArray(data)).toBe(true);

}); });

E2E Test

import { test, expect } from '@playwright/test';

test('should complete checkout flow', async ({ page }) => { await page.goto('/product/pintura-blanca'); await page.click('button:has-text("Agregar al carrito")'); await page.click('a[href="/checkout"]'); await page.fill('input[name="email"]', 'test@example.com'); await expect(page.locator('text=Resumen de compra')).toBeVisible(); });

Accessibility Test

import { render } from '@testing-library/react'; import { axe, toHaveNoViolations } from 'jest-axe';

expect.extend(toHaveNoViolations);

it('should not have accessibility violations', async () => { const { container } = render(<ProductCard product={mockProduct} />); const results = await axe(container); expect(results).toHaveNoViolations(); });

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

checkout-payments

No summary provided by upstream source.

Repository SourceNeeds Review
General

authentication

No summary provided by upstream source.

Repository SourceNeeds Review
General

postgres-best-practices

No summary provided by upstream source.

Repository SourceNeeds Review
General

error-handling

No summary provided by upstream source.

Repository SourceNeeds Review