UNPKG

@exodus/networking-spec

Version:

Platform-agnostic test suites for networking related features

62 lines (41 loc) 2.59 kB
# @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](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. | ## Developing ### Form 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()) ``` ### 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. ```ts 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. ```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 }) ```