https://github.com/idiocc/test-form-data
Data For Testing Multipart/Form-Data Algorithms.
https://github.com/idiocc/test-form-data
Last synced: about 1 year ago
JSON representation
Data For Testing Multipart/Form-Data Algorithms.
- Host: GitHub
- URL: https://github.com/idiocc/test-form-data
- Owner: idiocc
- License: other
- Created: 2019-07-04T13:05:14.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2019-07-04T13:19:10.000Z (almost 7 years ago)
- Last Synced: 2025-02-15T07:48:59.575Z (over 1 year ago)
- Language: JavaScript
- Homepage: https://idio.cc
- Size: 21.5 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# @multipart/test-form-data
[](https://npmjs.org/package/@multipart/test-form-data)
`@multipart/test-form-data` is Data For Testing Multipart/Form-Data Algorithms Written As [Zoroaster Mask](https://contexttesting.com).
```sh
yarn add -D @multipart/test-form-data
```
## Table Of Contents
- [Table Of Contents](#table-of-contents)
- [API](#api)
- [`updateStore(store: Object)`](#updatestorestore-object-void)
- [Copyright](#copyright)
## API
The package is available by importing its named function, and by referencing the mask result file:
```js
import makeTestSuite from '@zoroaster/mask'
import { updateStore } from '@multipart/test-form-data'
export default makeTestSuite('node_modules/@multipart/test-form-data', {
getResults() {
// ... must return the store for comparison
}
})
```
```markdown
## basic keys
[
{
"key": "name",
"value": "Bender"
},
{
"key": "hind",
"value": "Bitable"
},
{
"key": "shiny",
"value": "Yes"
}
]
/* expected */
{
"name": "Bender",
"hind": "Bitable",
"shiny": "Yes"
}
/**/
## multiple values
[
{
"key": "bottle-on-wall",
"value": "1"
},
{
"key": "bottle-on-wall",
"value": "2"
},
{
"key": "bottle-on-wall",
"value": "3"
}
]
/* expected */
{
"bottle-on-wall": [
"1",
"2",
"3"
]
}
/**/
## deeper structure
[
{
"key": "pet[species]",
"value": "Dahut"
},
{
"key": "pet[name]",
"value": "Hypatia"
},
{
"key": "kids[1]",
"value": "Thelma"
},
{
"key": "kids[0]",
"value": "Ashley"
}
]
/* expected */
{
"pet": {
"species": "Dahut",
"name": "Hypatia"
},
"kids": [
"Ashley",
"Thelma"
]
}
/**/
## sparse arrays
[
{
"key": "heartbeat[0]",
"value": "thunk"
},
{
"key": "heartbeat[2]",
"value": "thunk"
}
]
/* expected */
{
"heartbeat": [
"thunk",
null,
"thunk"
]
}
/**/
## even deeper
[
{
"key": "pet[0][species]",
"value": "Dahut"
},
{
"key": "pet[0][name]",
"value": "Hypatia"
},
{
"key": "pet[1][species]",
"value": "Felis Stultus"
},
{
"key": "pet[1][name]",
"value": "Billie"
}
]
/* expected */
{
"pet": [
{
"species": "Dahut",
"name": "Hypatia"
},
{
"species": "Felis Stultus",
"name": "Billie"
}
]
}
/**/
## such deep
[
{
"key": "wow[such][deep][3][much][power][!]",
"value": "Amaze"
}
]
/* expected */
{
"wow": {
"such": {
"deep": [
null,
null,
null,
{
"much": {
"power": {
"!": "Amaze"
}
}
}
]
}
}
}
/**/
## merge behaviour
[
{
"key": "mix",
"value": "scalar"
},
{
"key": "mix[0]",
"value": "array 1"
},
{
"key": "mix[2]",
"value": "array 2"
},
{
"key": "mix[key]",
"value": "key key"
},
{
"key": "mix[car]",
"value": "car key"
}
]
/* expected */
{
"mix": {
"0": "array 1",
"2": "array 2",
"": "scalar",
"key": "key key",
"car": "car key"
}
}
/**/
## bad fields
[
{
"key": "error[good]",
"value": "BOOM!"
},
{
"key": "error[bad",
"value": "BOOM BOOM!"
}
]
/* expected */
{
"error": {
"good": "BOOM!"
},
"error[bad": "BOOM BOOM!"
}
/**/
```
## `updateStore(`
`store: Object,`
`): void`
Updates the store to make `undefined` in sparse arrays appear as nulls for `deepStrictEqual` comparison.
```js
import { updateStore } from '@multipart/test-form-data'
const hello = []
hello[2] = 'test'
const store = { hello }
updateStore(store)
console.log(store)
```
```
{ hello: [ null, null, 'test' ] }
```
## Copyright
Original data by [Linus Unnebäck](https://github.com/LinusU/testdata-w3c-json-form).
---
© Art Deco for Idio 2019
Tech Nation Visa Sucks