UNPKG

@mjackson/headers

Version:
95 lines (73 loc) 3.31 kB
import * as assert from 'node:assert/strict'; import { describe, it } from 'node:test'; import { IfNoneMatch } from './if-none-match.ts'; describe('IfNoneMatch', () => { it('initializes with an empty string', () => { let header = new IfNoneMatch(''); assert.deepEqual(header.tags, []); }); it('initializes with a string with a single tag', () => { let header = new IfNoneMatch('67ab43'); assert.deepEqual(header.tags, ['"67ab43"']); let header2 = new IfNoneMatch('"67ab43"'); assert.deepEqual(header2.tags, ['"67ab43"']); let header3 = new IfNoneMatch('W/"67ab43"'); assert.deepEqual(header3.tags, ['W/"67ab43"']); }); it('initializes with a string with multiple tags', () => { let header = new IfNoneMatch('67ab43, 54ed21'); assert.deepEqual(header.tags, ['"67ab43"', '"54ed21"']); let header2 = new IfNoneMatch('"67ab43", "54ed21"'); assert.deepEqual(header2.tags, ['"67ab43"', '"54ed21"']); let header3 = new IfNoneMatch('W/"67ab43", "54ed21"'); assert.deepEqual(header3.tags, ['W/"67ab43"', '"54ed21"']); }); it('initializes with an array of tags', () => { let header = new IfNoneMatch(['67ab43', '54ed21']); assert.deepEqual(header.tags, ['"67ab43"', '"54ed21"']); let header2 = new IfNoneMatch(['"67ab43"', '"54ed21"']); assert.deepEqual(header2.tags, ['"67ab43"', '"54ed21"']); let header3 = new IfNoneMatch(['W/"67ab43"', '"54ed21"']); assert.deepEqual(header3.tags, ['W/"67ab43"', '"54ed21"']); }); it('initializes with an object', () => { let header = new IfNoneMatch({ tags: ['67ab43', '54ed21'] }); assert.deepEqual(header.tags, ['"67ab43"', '"54ed21"']); let header2 = new IfNoneMatch({ tags: ['"67ab43"', '"54ed21"'] }); assert.deepEqual(header2.tags, ['"67ab43"', '"54ed21"']); let header3 = new IfNoneMatch({ tags: ['W/"67ab43"', '"54ed21"'] }); assert.deepEqual(header3.tags, ['W/"67ab43"', '"54ed21"']); }); it('initializes with another IfNoneMatch', () => { let header = new IfNoneMatch(new IfNoneMatch('67ab43, 54ed21')); assert.deepEqual(header.tags, ['"67ab43"', '"54ed21"']); }); it('checks if a tag is present', () => { let header = new IfNoneMatch('67ab43, 54ed21'); assert.ok(header.has('"67ab43"')); assert.ok(header.has('"54ed21"')); assert.ok(!header.has('"7892dd"')); assert.ok(!header.has('*')); let header2 = new IfNoneMatch('W/"67ab43", "54ed21"'); assert.ok(header2.has('W/"67ab43"')); assert.ok(header2.has('"54ed21"')); assert.ok(!header2.has('"7892dd"')); }); it('checks if a tag matches', () => { let header = new IfNoneMatch('67ab43, 54ed21'); assert.ok(header.matches('"67ab43"')); assert.ok(header.matches('"54ed21"')); assert.ok(!header.matches('"7892dd"')); let header2 = new IfNoneMatch('W/"67ab43", "54ed21"'); assert.ok(header2.matches('W/"67ab43"')); assert.ok(header2.matches('"54ed21"')); assert.ok(!header2.matches('"7892dd"')); let header3 = new IfNoneMatch('*'); assert.ok(header3.matches('"67ab43"')); assert.ok(header3.matches('"54ed21"')); }); it('converts to a string', () => { let header = new IfNoneMatch('W/"67ab43", "54ed21"'); assert.equal(header.toString(), 'W/"67ab43", "54ed21"'); }); });