From 1bbca3be8028a17b1de0a869b98898ed4167ccb4 Mon Sep 17 00:00:00 2001 From: Ben Monro Date: Fri, 26 Apr 2019 09:33:04 -0700 Subject: [PATCH 01/13] Create intro.md --- docs/testcafe-testing-library/intro.md | 61 ++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 docs/testcafe-testing-library/intro.md diff --git a/docs/testcafe-testing-library/intro.md b/docs/testcafe-testing-library/intro.md new file mode 100644 index 000000000..62f76026b --- /dev/null +++ b/docs/testcafe-testing-library/intro.md @@ -0,0 +1,61 @@ +--- +id: intro +title: Testcafe Testing Library +--- + +[`testcafe-testing-library`][gh] allows the use of dom-testing queries within +[Testcafe](https://devexpress.github.io/testcafe/) cross-browser end-to-end web testing. + +``` +npm install --save-dev testcafe testcafe-testing-library +``` + +- [testcafe-testing-library on GitHub][gh] + +## Usage + +`testcafe-testing-library` provides custom Selectors allowing you to query the dom. + +Add Testcafe to your test fixture as follows: + +```javascript +import { + getByText, //or any other queries you want + addTestcafeTestingLibrary, +} from 'testcafe-testing-library'; + + +fixture`selectors`.beforeEach(addTestcafeTestingLibrary) + .page`http://localhost:13370` + +``` +You can now import & use `getBy`, `getAllBy`, `queryBy` +and `queryAllBy` commands. +[See `dom-testing-library` API for reference](dom-testing-library/api-queries.md) + +## Examples + +To show some simple examples (from +[https://github.com/benmonro/testcafe-testing-library/blob/master/tests/testcafe/selectors.js](https://github.com/benmonro/testcafe-testing-library/blob/master/tests/testcafe/selectors.js)): + +```javascript +test('getByPlaceHolderText', async t => { + await t.typeText( + getByPlaceholderText('Placeholder Text'), + 'Hello Placeholder', + ) +}) +test('getByText', async t => { + await t.click(getByText('getByText')) +}) + +test('getByLabelText', async t => { + await t.typeText( + getByLabelText('Label For Input Labelled By Id'), + 'Hello Input Labelled By Id', + ) +}) + +``` + +[gh]: https://github.com/benmonro/testcafe-testing-library From b3a67ecc15afa0de8674607151a0ce11be52bd81 Mon Sep 17 00:00:00 2001 From: Ben Monro Date: Fri, 26 Apr 2019 09:44:59 -0700 Subject: [PATCH 02/13] doc: added testcafe-testing-library docs --- docs/testcafe-testing-library/intro.md | 20 ++++++++++---------- website/sidebars.json | 1 + 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/docs/testcafe-testing-library/intro.md b/docs/testcafe-testing-library/intro.md index 62f76026b..5ea6564af 100644 --- a/docs/testcafe-testing-library/intro.md +++ b/docs/testcafe-testing-library/intro.md @@ -4,7 +4,8 @@ title: Testcafe Testing Library --- [`testcafe-testing-library`][gh] allows the use of dom-testing queries within -[Testcafe](https://devexpress.github.io/testcafe/) cross-browser end-to-end web testing. +[Testcafe](https://devexpress.github.io/testcafe/) cross-browser end-to-end web +testing. ``` npm install --save-dev testcafe testcafe-testing-library @@ -14,7 +15,8 @@ npm install --save-dev testcafe testcafe-testing-library ## Usage -`testcafe-testing-library` provides custom Selectors allowing you to query the dom. +`testcafe-testing-library` provides custom Selectors allowing you to query the +dom. Add Testcafe to your test fixture as follows: @@ -22,15 +24,14 @@ Add Testcafe to your test fixture as follows: import { getByText, //or any other queries you want addTestcafeTestingLibrary, -} from 'testcafe-testing-library'; - +} from 'testcafe-testing-library' fixture`selectors`.beforeEach(addTestcafeTestingLibrary) .page`http://localhost:13370` - ``` -You can now import & use `getBy`, `getAllBy`, `queryBy` -and `queryAllBy` commands. + +You can now import & use `getBy`, `getAllBy`, `queryBy` and `queryAllBy` +selectors in your tests. [See `dom-testing-library` API for reference](dom-testing-library/api-queries.md) ## Examples @@ -42,7 +43,7 @@ To show some simple examples (from test('getByPlaceHolderText', async t => { await t.typeText( getByPlaceholderText('Placeholder Text'), - 'Hello Placeholder', + 'Hello Placeholder' ) }) test('getByText', async t => { @@ -52,10 +53,9 @@ test('getByText', async t => { test('getByLabelText', async t => { await t.typeText( getByLabelText('Label For Input Labelled By Id'), - 'Hello Input Labelled By Id', + 'Hello Input Labelled By Id' ) }) - ``` [gh]: https://github.com/benmonro/testcafe-testing-library diff --git a/website/sidebars.json b/website/sidebars.json index 430501033..9bafb19c0 100755 --- a/website/sidebars.json +++ b/website/sidebars.json @@ -35,6 +35,7 @@ "vue-testing-library/intro", "angular-testing-library/intro", "pptr-testing-library/intro", + "testcafe-testing-library/intro", { "type": "subcategory", "label": "ReasonReact Testing Library", From dd1780847402475fb59f3b2ef245defb35dd8d71 Mon Sep 17 00:00:00 2001 From: Ben Monro Date: Fri, 26 Apr 2019 09:51:23 -0700 Subject: [PATCH 03/13] doc: cleaned up some little details --- docs/testcafe-testing-library/intro.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/testcafe-testing-library/intro.md b/docs/testcafe-testing-library/intro.md index 5ea6564af..673236f54 100644 --- a/docs/testcafe-testing-library/intro.md +++ b/docs/testcafe-testing-library/intro.md @@ -18,7 +18,7 @@ npm install --save-dev testcafe testcafe-testing-library `testcafe-testing-library` provides custom Selectors allowing you to query the dom. -Add Testcafe to your test fixture as follows: +Add `testcafe-testing-library` to your test fixture's `beforeEach` hook: ```javascript import { From 203fd232c27a302107097b952f73db2a047aea28 Mon Sep 17 00:00:00 2001 From: Ben Monro Date: Fri, 26 Apr 2019 11:43:59 -0700 Subject: [PATCH 04/13] added note for container --- docs/testcafe-testing-library/intro.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/testcafe-testing-library/intro.md b/docs/testcafe-testing-library/intro.md index 673236f54..b55ee4d02 100644 --- a/docs/testcafe-testing-library/intro.md +++ b/docs/testcafe-testing-library/intro.md @@ -58,4 +58,7 @@ test('getByLabelText', async t => { }) ``` +**_Note:_** The selectors come pre-bound to `document.body`, so no need to +provide a container. + [gh]: https://github.com/benmonro/testcafe-testing-library From d60b3970d1fc3e6621b49defdff882849597b53e Mon Sep 17 00:00:00 2001 From: Ben Monro Date: Sun, 28 Apr 2019 11:39:28 -0700 Subject: [PATCH 05/13] add docs for within --- docs/testcafe-testing-library/intro.md | 29 ++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/docs/testcafe-testing-library/intro.md b/docs/testcafe-testing-library/intro.md index b55ee4d02..1e426fb89 100644 --- a/docs/testcafe-testing-library/intro.md +++ b/docs/testcafe-testing-library/intro.md @@ -58,7 +58,32 @@ test('getByLabelText', async t => { }) ``` -**_Note:_** The selectors come pre-bound to `document.body`, so no need to -provide a container. +## Containers + +By default the selectors come pre-bound to `document.body`, so no need to +provide a container. However, if you want to restrict your query using a +container, you can use `within`. Keep in mind that `within` works using a +Testcafe `ClientFunction` so you will need to await it, and you can't make +assertions on it like you can using a `Selector`. + +### Examples using `within` + +```javascript +import { within, addTestcafeTestingLibrary } from 'testcafe-testing-library' + +fixture`within`.beforeEach(addTestcafeTestingLibrary) + .page`http://localhost:13370` + +test('getByText within container', async t => { + const { getByText } = await within('#nested') + await t.click(getByText('Button Text')).ok() +}) + +test("queryByPlaceholder doesn't find anything", async t => { + const { queryByPlaceholderText } = await within('#nested') + + await t.expect(queryByPlaceholderText('Placeholder Text').exists).notOk() +}) +``` [gh]: https://github.com/benmonro/testcafe-testing-library From ef551dddead950220ae4ff6ebf963b9d7ce33aac Mon Sep 17 00:00:00 2001 From: Ben Monro Date: Fri, 3 May 2019 14:53:47 -0700 Subject: [PATCH 06/13] added svelte & known issue w/ testcafe --- docs/svelte-testing-library/intro.md | 72 ++++++++++++++++++++++++++ docs/testcafe-testing-library/intro.md | 8 +++ website/sidebars.json | 1 + 3 files changed, 81 insertions(+) create mode 100644 docs/svelte-testing-library/intro.md diff --git a/docs/svelte-testing-library/intro.md b/docs/svelte-testing-library/intro.md new file mode 100644 index 000000000..60449a22e --- /dev/null +++ b/docs/svelte-testing-library/intro.md @@ -0,0 +1,72 @@ +--- +id: intro +title: Svelte Testing Library +--- + +[`svelte-testing-library`][gh] simplifies the use of dom-testing with +[Svelte](https://svelte.dev/) components & applications. + +``` +npm install --save-dev svlt-testing-library +``` + +- [svelte-testing-library on GitHub][gh] + +## Usage + +You must add `cleanup` to your test fixture's `beforeEach` hook: + +```javascript +import { render, cleanup } from 'svlt-testing-library' + +beforeEach(cleanup) //this is required. +``` + +You can now import & use `getBy`, `getAllBy`, `queryBy` and `queryAllBy` queries +in your tests. +[See `dom-testing-library` API for reference](dom-testing-library/api-queries.md) + +## Examples + +App.svelte + +```html + + + + +

Hello {name}!

+``` + +App.spec.js + +```javascript +import App from '../src/App.svelte' +import { render, cleanup } from 'svlt-testing-library' +beforeEach(cleanup) +describe('App', () => { + test('should render greeting', () => { + const { getByText } = render(App, { props: { name: 'world' } }) + + expect(getByText('Hello world!')) + }) + + test('should change button text after click', async () => { + const { getByText } = render(App, { props: { name: 'world' } }) + + fireEvent.click(getByText('Button Text')) + + const button = await waitForElement(() => getByText('Button Clicked')) + + expect(button).toBeInTheDocument() + }) +}) +``` + +[gh]: https://github.com/testing-library/svelte-testing-library diff --git a/docs/testcafe-testing-library/intro.md b/docs/testcafe-testing-library/intro.md index 1e426fb89..f32f625c0 100644 --- a/docs/testcafe-testing-library/intro.md +++ b/docs/testcafe-testing-library/intro.md @@ -86,4 +86,12 @@ test("queryByPlaceholder doesn't find anything", async t => { }) ``` +## Known Issues + +Whenever a non-client side browser navigation event occurs, you will need to +make another call to `addTestcafeTestingLibrary`. Testcafe uses a Proxy to +inject & execute tests/selectors. AFAIK, there's no way to tap into an +`on("navigate")` event. I have filed an issue with Testcafe to address this so +feel free to give it a +1. https://github.com/DevExpress/testcafe/issues/3758 + [gh]: https://github.com/benmonro/testcafe-testing-library diff --git a/website/sidebars.json b/website/sidebars.json index 15af575ca..b7514c0a6 100755 --- a/website/sidebars.json +++ b/website/sidebars.json @@ -51,6 +51,7 @@ ] }, "cypress-testing-library/intro", + "svelte-testing-library/intro", "vue-testing-library/intro", "angular-testing-library/intro", "pptr-testing-library/intro", From c51de0a26ea930c6a6ac92db3068267f6c805890 Mon Sep 17 00:00:00 2001 From: Ben Monro Date: Fri, 3 May 2019 16:21:28 -0700 Subject: [PATCH 07/13] added note about jest-transform-svelte --- docs/svelte-testing-library/intro.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/svelte-testing-library/intro.md b/docs/svelte-testing-library/intro.md index 60449a22e..ed9177a8a 100644 --- a/docs/svelte-testing-library/intro.md +++ b/docs/svelte-testing-library/intro.md @@ -14,6 +14,10 @@ npm install --save-dev svlt-testing-library ## Usage +You will first need to install and configure +[jest-transform-svelte](https://www.npmjs.com/package/jest-transform-svelte) in +order to use svelte in jest. + You must add `cleanup` to your test fixture's `beforeEach` hook: ```javascript From d180f27ba7cc4f44ad4096da5476ee5037f72c58 Mon Sep 17 00:00:00 2001 From: Ben Monro Date: Fri, 3 May 2019 16:22:56 -0700 Subject: [PATCH 08/13] removed old example --- docs/svelte-testing-library/intro.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/docs/svelte-testing-library/intro.md b/docs/svelte-testing-library/intro.md index ed9177a8a..1455bb3da 100644 --- a/docs/svelte-testing-library/intro.md +++ b/docs/svelte-testing-library/intro.md @@ -26,10 +26,6 @@ import { render, cleanup } from 'svlt-testing-library' beforeEach(cleanup) //this is required. ``` -You can now import & use `getBy`, `getAllBy`, `queryBy` and `queryAllBy` queries -in your tests. -[See `dom-testing-library` API for reference](dom-testing-library/api-queries.md) - ## Examples App.svelte From 352b983254ff635b0050b58b0ac8ec59d2773c06 Mon Sep 17 00:00:00 2001 From: Ben Monro Date: Sun, 5 May 2019 09:02:48 -0700 Subject: [PATCH 09/13] added logos to home page --- website/pages/en/index.js | 11 +++++++++++ website/static/img/svelte-128x128.png | Bin 0 -> 17143 bytes website/static/img/testcafe-128x128.jpg | Bin 0 -> 3879 bytes 3 files changed, 11 insertions(+) create mode 100644 website/static/img/svelte-128x128.png create mode 100644 website/static/img/testcafe-128x128.jpg diff --git a/website/pages/en/index.js b/website/pages/en/index.js index 7632284bc..440f660e0 100755 --- a/website/pages/en/index.js +++ b/website/pages/en/index.js @@ -195,6 +195,17 @@ class Index extends React.Component { title: '[Cypress Testing Library](./docs/cypress-testing-library/intro)', }, + { + image: `${baseUrl}img/testcafe-128x128.jpg`, + imageAlign: 'top', + title: `[Testcafe Testing Library](./docs/testcafe-testing-library/intro)`, + }, + { + image: `${baseUrl}img/svelte-128x128.png`, + imageAlign: 'top', + title: + '[Svelte Testing Library](./docs/svelte-testing-library/intro)', + }, { image: `${baseUrl}img/vue-400x400.png`, imageAlign: 'top', diff --git a/website/static/img/svelte-128x128.png b/website/static/img/svelte-128x128.png new file mode 100644 index 0000000000000000000000000000000000000000..d7ac5393bb48130d85848e127cbe00e10c56c38a GIT binary patch literal 17143 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 E04+d8R{#J2 literal 0 HcmV?d00001 diff --git a/website/static/img/testcafe-128x128.jpg b/website/static/img/testcafe-128x128.jpg new file mode 100644 index 0000000000000000000000000000000000000000..fadbdcb2689597a86c7d06b8d081e7b3b1616278 GIT binary patch literal 3879 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 Date: Sun, 5 May 2019 10:42:09 -0700 Subject: [PATCH 10/13] added cleanup section --- docs/svelte-testing-library/intro.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/docs/svelte-testing-library/intro.md b/docs/svelte-testing-library/intro.md index 1455bb3da..ec71f6b73 100644 --- a/docs/svelte-testing-library/intro.md +++ b/docs/svelte-testing-library/intro.md @@ -69,4 +69,24 @@ describe('App', () => { }) ``` +### Cleanup + +You can ensure [`cleanup`](./api#cleanup) is called after each test and import +additional assertions by adding it to the setup configuration in Jest. + +In Jest 24 and up, add the +[`setupFilesAfterEnv`](https://jestjs.io/docs/en/configuration.html#setupfilesafterenv-array) +option to your Jest config: + +```javascript +// jest.config.js +module.exports = { + setupFilesAfterEnv: [ + 'svelte-testing-library/cleanup-after-each', + // ... other setup files ... + ], + // ... other options ... +} +``` + [gh]: https://github.com/testing-library/svelte-testing-library From b16234c3fb6625258a6d7fd08748513fd52f8f77 Mon Sep 17 00:00:00 2001 From: Ben Monro Date: Thu, 9 May 2019 12:22:34 -0700 Subject: [PATCH 11/13] reverted old image name --- website/pages/en/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/pages/en/index.js b/website/pages/en/index.js index 2ea9b6149..440f660e0 100755 --- a/website/pages/en/index.js +++ b/website/pages/en/index.js @@ -201,7 +201,7 @@ class Index extends React.Component { title: `[Testcafe Testing Library](./docs/testcafe-testing-library/intro)`, }, { - image: `${baseUrl}img/svelte-107x128.png`, + image: `${baseUrl}img/svelte-128x128.png`, imageAlign: 'top', title: '[Svelte Testing Library](./docs/svelte-testing-library/intro)', From f7e2f0924b283012f2d28ed6cba0bd13b9a88971 Mon Sep 17 00:00:00 2001 From: Ben Monro Date: Fri, 10 May 2019 09:26:44 -0700 Subject: [PATCH 12/13] fixed broken svelte image --- website/pages/en/index.js | 2 +- website/static/img/svelte-107x128.png | Bin 0 -> 15104 bytes 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 website/static/img/svelte-107x128.png diff --git a/website/pages/en/index.js b/website/pages/en/index.js index 440f660e0..2ea9b6149 100755 --- a/website/pages/en/index.js +++ b/website/pages/en/index.js @@ -201,7 +201,7 @@ class Index extends React.Component { title: `[Testcafe Testing Library](./docs/testcafe-testing-library/intro)`, }, { - image: `${baseUrl}img/svelte-128x128.png`, + image: `${baseUrl}img/svelte-107x128.png`, imageAlign: 'top', title: '[Svelte Testing Library](./docs/svelte-testing-library/intro)', diff --git a/website/static/img/svelte-107x128.png b/website/static/img/svelte-107x128.png new file mode 100644 index 0000000000000000000000000000000000000000..8f7b85823390f4c9d0b5143de48c56a616ce0eb3 GIT binary patch literal 15104 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 U40{>pKj%y(Mdd{5gbafI59aOL5&!@I literal 0 HcmV?d00001 From 958127d84e349fd25912b2d3c7f46512692f3c02 Mon Sep 17 00:00:00 2001 From: Ben Monro Date: Fri, 10 May 2019 09:37:34 -0700 Subject: [PATCH 13/13] made svelte logo 80 to match others (even though they say 128 shrug) --- website/pages/en/index.js | 2 +- website/static/img/svelte-107x128.png | Bin 15104 -> 0 bytes website/static/img/svelte-logo.png | Bin 0 -> 7919 bytes 3 files changed, 1 insertion(+), 1 deletion(-) delete mode 100644 website/static/img/svelte-107x128.png create mode 100644 website/static/img/svelte-logo.png diff --git a/website/pages/en/index.js b/website/pages/en/index.js index 2ea9b6149..51b7c9439 100755 --- a/website/pages/en/index.js +++ b/website/pages/en/index.js @@ -201,7 +201,7 @@ class Index extends React.Component { title: `[Testcafe Testing Library](./docs/testcafe-testing-library/intro)`, }, { - image: `${baseUrl}img/svelte-107x128.png`, + image: `${baseUrl}img/svelte-logo.png`, imageAlign: 'top', title: '[Svelte Testing Library](./docs/svelte-testing-library/intro)', diff --git a/website/static/img/svelte-107x128.png b/website/static/img/svelte-107x128.png deleted file mode 100644 index 8f7b85823390f4c9d0b5143de48c56a616ce0eb3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15104 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 U40{>pKj%y(Mdd{5gbafI59aOL5&!@I diff --git a/website/static/img/svelte-logo.png b/website/static/img/svelte-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..acb7d5cd5e4a64ed17dd2cda1e0b376c0f230299 GIT binary patch literal 7919 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 V#fn--{^u83R#H)-M$9