Development questions

How do you unit test an LWC with Jest?

DevelopmentMedium

Use the @salesforce/sfdx-lwc-jest package; tests live in a __tests__ folder next to the component.

javascript
import { createElement } from 'lwc';
import Greeting from 'c/greeting';

describe('c-greeting', () => {
  afterEach(() => { while (document.body.firstChild) document.body.removeChild(document.body.firstChild); });

  it('renders name', async () => {
    const el = createElement('c-greeting', { is: Greeting });
    el.name = 'Vikas';
    document.body.appendChild(el);
    await Promise.resolve(); // wait for re-render
    expect(el.shadowRoot.querySelector('p').textContent).toBe('Hello, Vikas');
  });
});

Mock Apex with jest.mock('@salesforce/apex/...', ..., { virtual: true }), and use @salesforce/sfdx-lwc-jest wire test utilities (registerLdsTestWireAdapter, emit) for wire adapters. Run with npm run test:unit.

lwcjesttesting