@exodus/networking-spec
v5.0.0
Published
Platform-agnostic test suites for networking related features
Downloads
1,030
Maintainers
Readme
@exodus/networking-spec
This repository contains test suites for networking related features such as form data, URL parsing, HTTP requests, and more.
Implementations
| Platform | Description | | ------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------- | | Browser | Implements the spec for browser contexts. Tests are executed with karma in a real browser. | | Node | Implements the spec for node contexts. Tests are executed with Jest in a node environment. | | Mobile | Implements the spec for React Native contexts. Tests are executed with Jest using the React Native preset in a node environment. |
Developing
Form
Import the testsuite from @exodus/networking-spec/form
and invoke it with your
FormData implementation.
import { testsuite } from '@exodus/networking-spec/form'
testsuite(() => new MyFormDataImplementation())
Http
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.
Cookie
Import the testsuite from @exodus/networking-spec/cookie
and invoke it with your
CookieJar implementation.
import { testsuite } from '@exodus/networking-spec/cookie'
testsuite(() => new CookieJar())
URL
Import the testsuite from @exodus/networking-spec/url
and invoke it with your
URLParser implementation.
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:
testsuite(() => new UrlParser(), { unicode: false })