mirror of
https://github.com/zadam/trilium.git
synced 2025-11-10 23:35:50 +01:00
Add '_regroup_monorepo/express-partial-content/' from commit 'b80bfb7ca44c16bd5b747362ac2f53ece911b225'
git-subtree-dir: _regroup_monorepo/express-partial-content git-subtree-mainline:7349176c98git-subtree-split:b80bfb7ca4
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
import { parseRangeHeader } from "../src/parseRangeHeader";
|
||||
import { SinonSandbox, createSandbox } from "sinon";
|
||||
import { Logger } from "../src/Logger";
|
||||
import { expect } from "chai";
|
||||
import { RangeParserError } from "../src/RangeParserError";
|
||||
|
||||
describe("parseRangeHeader tests", () => {
|
||||
let sandbox: SinonSandbox;
|
||||
let logger: Logger;
|
||||
beforeEach(() => {
|
||||
sandbox = createSandbox();
|
||||
logger = {
|
||||
debug: sandbox.stub() as (message: string, extra?: any) => void
|
||||
};
|
||||
});
|
||||
afterEach(() => {
|
||||
sandbox.restore();
|
||||
});
|
||||
it("returns null if range is not specified", () => {
|
||||
let value = parseRangeHeader("", 10, logger);
|
||||
expect(value).to.be.equal(null);
|
||||
value = parseRangeHeader(null, 10, logger);
|
||||
expect(value).to.be.equal(null);
|
||||
});
|
||||
it("returns null if total size is zero", () => {
|
||||
let value = parseRangeHeader("bytes=0-5", 0, logger);
|
||||
expect(value).to.be.equal(null);
|
||||
});
|
||||
it("if end is not provided, sets end to the last byte (totalSize - 1).", () => {
|
||||
let value = parseRangeHeader("bytes=0-", 10, logger);
|
||||
expect(value).to.be.deep.equal({ start: 0, end: 9 });
|
||||
});
|
||||
it('if start is not provided, set it to the offset of last "end" bytes from the end of the file.', () => {
|
||||
let value = parseRangeHeader("bytes=-5", 10, logger);
|
||||
expect(value).to.be.deep.equal({ start: 5, end: 9 });
|
||||
});
|
||||
it("handles invalid ranges", () => {
|
||||
try {
|
||||
parseRangeHeader("bytes=6-5", 10, logger);
|
||||
} catch (error) {
|
||||
expect(error).that.be.instanceOf(RangeParserError);
|
||||
}
|
||||
try {
|
||||
parseRangeHeader("bytes=6-7", 10, logger);
|
||||
} catch (error) {
|
||||
expect(error).that.be.instanceOf(RangeParserError);
|
||||
}
|
||||
try {
|
||||
parseRangeHeader("bytes=6-11", 10, logger);
|
||||
} catch (error) {
|
||||
expect(error).that.be.instanceOf(RangeParserError);
|
||||
}
|
||||
});
|
||||
it("returns a valid parsed range.", () => {
|
||||
let value = parseRangeHeader("bytes=0-5", 10, logger);
|
||||
expect(value).to.be.deep.equal({ start: 0, end: 5 });
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user