Compare commits
2 Commits
a56594b1df
...
8c2a83ecee
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8c2a83ecee | ||
|
|
765bec03c0 |
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "multi-hoster-uploader",
|
||||
"version": "2.3.5",
|
||||
"version": "2.3.6",
|
||||
"description": "Upload files to doodstream, voe, vidmoly, byse simultaneously",
|
||||
"main": "main.js",
|
||||
"scripts": {
|
||||
|
||||
@ -162,4 +162,13 @@ describe('Semaphore', () => {
|
||||
await new Promise(r => setTimeout(r, 5));
|
||||
assert.equal(sem.pending, 1);
|
||||
});
|
||||
|
||||
it('release without acquire clamps active to 0', () => {
|
||||
const sem = new Semaphore(2);
|
||||
assert.equal(sem.active, 0);
|
||||
sem.release();
|
||||
assert.equal(sem.active, 0, 'should not go negative');
|
||||
sem.release();
|
||||
assert.equal(sem.active, 0, 'should still be 0');
|
||||
});
|
||||
});
|
||||
|
||||
@ -83,4 +83,19 @@ describe('Throttle', () => {
|
||||
const elapsed = Date.now() - start2;
|
||||
assert.ok(elapsed >= 150, `third consume should wait for refill, took ${elapsed}ms`);
|
||||
});
|
||||
|
||||
it('consume(0) resolves immediately', async () => {
|
||||
const t = new Throttle(100);
|
||||
const start = Date.now();
|
||||
await t.consume(0);
|
||||
assert.ok(Date.now() - start < 50);
|
||||
});
|
||||
|
||||
it('updateRate to unlimited (0) makes consume instant', async () => {
|
||||
const t = new Throttle(100); // very slow
|
||||
t.updateRate(0); // unlimited
|
||||
const start = Date.now();
|
||||
await t.consume(1_000_000);
|
||||
assert.ok(Date.now() - start < 50, 'unlimited rate should be instant');
|
||||
});
|
||||
});
|
||||
|
||||
Loading…
Reference in New Issue
Block a user