Akryum / peeky

A fast and fun test runner for Vite & Node 🐈️ Powered by Vite ⚡️
https://peeky.dev
MIT License
681 stars 17 forks source link

Jest-dom like assertions #56

Open distantnative opened 2 years ago

distantnative commented 2 years ago

For component testing, would be great to have jest-dom like assertions, e.g. toHaveAttribute()

wobsoriano commented 2 years ago

I think you can just create a setup file and extend expect

// peeky.setup.ts
import { expect } from '@peeky/test'
import matchers from '@testing-library/jest-dom/matchers'

expect.extend(matchers)
// peeky.config.ts
import { defineConfig } from '@peeky/test'

export default defineConfig({
  runtimeEnv: 'dom',
  setupFiles: ['./peeky.setup.ts']
})
// tsconfig.json
{
  "compilerOptions": {
    ...
    "types": ["@peeky/test"]
  },
  "include": ["./peeky.setup.ts"]
}
import { render } from '@testing-library/vue';
import Counter from '~/src/components/Counter.vue'

describe('Component: Counter.vue', () => {
  test('User should see 0 at the beginning', () => {
    const { getByText } = render(Counter);
    const textNumberWrapper = getByText(/Counter is:/);
    expect(textNumberWrapper).toHaveTextContent('Counter is: 0');
  });
});