25 lines
903 B
Plaintext
25 lines
903 B
Plaintext
'use strict'
|
|
|
|
const test = require('tape')
|
|
const fastURI = require('..')
|
|
|
|
test('WebSocket queries preserve additional question marks', (t) => {
|
|
for (const scheme of ['ws', 'wss']) {
|
|
const uri = `${scheme}://example.com/chat?a?b`
|
|
const truncatedURI = `${scheme}://example.com/chat?a`
|
|
const parsed = fastURI.parse(uri)
|
|
|
|
t.equal(parsed.resourceName, '/chat?a?b', `${scheme} parse preserves the resource name`)
|
|
t.equal(fastURI.serialize(parsed), uri, `${scheme} parsed components round-trip`)
|
|
t.equal(
|
|
fastURI.serialize({ scheme, host: 'example.com', resourceName: '/chat?a?b' }),
|
|
uri,
|
|
`${scheme} resource name serializes without truncation`
|
|
)
|
|
t.equal(fastURI.normalize(uri), uri, `${scheme} normalization preserves the full query`)
|
|
t.equal(fastURI.equal(uri, truncatedURI), false, `${scheme} equality distinguishes the full query`)
|
|
}
|
|
|
|
t.end()
|
|
})
|