@exodus/networking-spec
Version:
Platform-agnostic test suites for networking related features
62 lines (41 loc) • 2.59 kB
Markdown
This repository contains test suites for networking related features such as form data, URL parsing, HTTP requests,
and more.
| Platform | Description |
| ------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------- |
| [Browser](https://github.com/ExodusMovement/exodus-hydra/tree/master/modules/networking-browser) | Implements the spec for browser contexts. Tests are executed with karma in a real browser. |
| [Node](https://github.com/ExodusMovement/exodus-hydra/tree/master/modules/networking-node) | Implements the spec for node contexts. Tests are executed with Jest in a node environment. |
| [Mobile](https://github.com/ExodusMovement/exodus-hydra/tree/master/modules/networking-mobile) | Implements the spec for React Native contexts. Tests are executed with Jest using the React Native preset in a node environment. |
Import the testsuite from `@exodus/networking-spec/form` and invoke it with your
FormData implementation.
```ts
import { testsuite } from '@exodus/networking-spec/form'
testsuite(() => new MyFormDataImplementation())
```
Import the testsuite from `@exodus/networking-spec/http` and invoke it with your
HttpClient implementation and a mock adapter that exposes received requests in a
uniform way and a method to define how a request is responded to.
Import the testsuite from `@exodus/networking-spec/cookie` and invoke it with your
CookieJar implementation.
```ts
import { testsuite } from '@exodus/networking-spec/cookie'
testsuite(() => new CookieJar())
```
Import the testsuite from `@exodus/networking-spec/url` and invoke it with your
URLParser implementation.
```ts
import { testsuite } from '@exodus/networking-spec/url'
testsuite(() => new UrlParser())
```
The URL parsing testsuite comes with a large number of tests from the web-platform-tests project, which also
includes about 11 test cases for unicode parsing. To opt out of the test cases for unicode parsing, provide the
following options to the testsuite:
```ts
testsuite(() => new UrlParser(), { unicode: false })
```