codeceptjs / codeceptjs/CodeceptJS

[Types] Unable to extend ILocator, and addFilter is missing from Locator

Open
#2,565 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
JavaScript
Stars
4.2k
Forks
757
Avg merge
2d 9h
Merged PRs (30d)
16

Description

#### What are you trying to achieve?

I would like to extend the `ILocator` type in order to add a custom Locator to it (e.g. {da: string}) for selecting elements with a custom `data-automation` attribute.

I would also like to call `locator.addFillter()` without getting a TS error.

#### What do you get instead?

##### ILocator

I am unable to extend ILocator type as it isn't exported on the types:

![image](https://user-images.githubusercontent.com/7611706/91538748-323f9e00-e910-11ea-8cf6-3f5798280d8f.png)

##### Locator

I have to extend `Locator` to declare `addFilter`, as this property is missing from the generated types.

``` ts

interface Locator {
addFilter: (
callback: (
providedLocator: Record,
locatorObj: { type: string; value: string },
) => void,
) => void;
}

```

otherwise, I'll get this:
![image](https://user-images.githubusercontent.com/7611706/91539368-1b4d7b80-e911-11ea-8fac-5110d3f4b2c3.png)

### Details

* CodeceptJS version: 2.6.8
* NodeJS Version: 12
* Operating System: OSX
* playwright: 1.3.0

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.