4.0.3 • Published 10 months ago

@badisi/wdio-harness v4.0.3

Weekly downloads
-
License
MIT
Repository
github
Last release
10 months ago

Component test harnesses

A component harness is a class that lets a test interact with a component via a supported API. Each harness's API interacts with a component the same way a user would. By using the harness API, a test insulates itself against updates to the internals of a component, such as changing its DOM structure. The idea for component harnesses comes from the PageObject pattern commonly used for integration testing.

More info

Installation

npm install @badisi/wdio-harness --save-dev
yarn add @badisi/wdio-harness --dev

Usage

Methods

  • createHarnessEnvironment(rootElement) - gets a HarnessLoader instance from a given element (defaults to body)
  • getHarness(harnessType, element) - searches for an harness instance from a given ComponentHarness class and element
  • getHarness(harnessType) - searches for an harness instance from a given ComponentHarness class
  • getHarness(query) - searches for an harness instance from a given HarnessPredicate
  • getAllHarnesses(query) - acts like getHarness, but returns an array of harness instances
  • waitForAngular() - waits for Angular to finish bootstrapping

Example

import { MatDatepickerInputHarness } from '@angular/material/datepicker/testing';
import { getHarness } from '@badisi/wdio-harness';

describe('Angular Material Harness', () => {
    beforeEach(async () => {
        await browser.url('http://localhost:4200');
    });

    it('MatDatePicker', async () => {
        const datepicker = await getHarness(MatDatepickerInputHarness.with({ selector: '#demo-datepicker-input' }));

        await datepicker.setValue('9/27/1954');
        expect(await datepicker.getValue()).withContext('Date should be 9/27/1954').toBe('9/27/1954');

        await datepicker.openCalendar();
        const calendar = await datepicker.getCalendar();
        await calendar.next();
        await calendar.selectCell({ text: '20' });
        expect(await datepicker.getValue()).withContext('Date should be 10/20/1954').toBe('10/20/1954');
    });
});

More examples here.

Development

See the developer docs.

Contributing

> Want to Help ?

Want to file a bug, contribute some code or improve documentation ? Excellent!

But please read up first on the guidelines for contributing, and learn about submission process, coding rules and more.

> Code of Conduct

Please read and follow the Code of Conduct and help me keep this project open and inclusive.

4.0.3

10 months ago

4.0.2

10 months ago

4.0.1

10 months ago

4.0.0

11 months ago

3.1.3

1 year ago

3.1.6

12 months ago

3.1.5

1 year ago

3.1.4

1 year ago

3.1.2

1 year ago

3.1.1

1 year ago

3.1.0

1 year ago

3.0.4

2 years ago

3.0.3

2 years ago

3.0.2

2 years ago

3.0.1

2 years ago

3.0.0

2 years ago

2.0.3

2 years ago

2.0.2

2 years ago

2.0.1

3 years ago

2.0.0

3 years ago

1.0.5

3 years ago

1.0.4

3 years ago

1.0.3

3 years ago

1.0.2

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago