2018-02-21 04:31:27 +00:00
|
|
|
import assert from 'assert';
|
|
|
|
import * as api from '../../../app/api';
|
|
|
|
import Keychain from '../../../app/keychain';
|
|
|
|
|
|
|
|
const encoder = new TextEncoder();
|
2018-06-21 00:05:33 +00:00
|
|
|
const plaintext = new Blob([encoder.encode('hello world!')]);
|
2018-02-21 04:31:27 +00:00
|
|
|
const metadata = {
|
|
|
|
name: 'test.txt',
|
|
|
|
type: 'text/plain'
|
|
|
|
};
|
|
|
|
|
|
|
|
describe('API', function() {
|
2018-06-21 00:05:33 +00:00
|
|
|
describe('websocket upload', function() {
|
2018-02-21 04:31:27 +00:00
|
|
|
it('returns file info on success', async function() {
|
|
|
|
const keychain = new Keychain();
|
2018-06-22 20:17:23 +00:00
|
|
|
const enc = keychain.encryptStream(plaintext);
|
2018-02-21 04:31:27 +00:00
|
|
|
const meta = await keychain.encryptMetadata(metadata);
|
|
|
|
const verifierB64 = await keychain.authKeyB64();
|
2018-02-24 19:24:12 +00:00
|
|
|
const p = function() {};
|
2018-06-25 17:57:52 +00:00
|
|
|
const up = api.uploadWs(enc.stream, enc.streamInfo, meta, verifierB64, p);
|
2018-06-21 00:05:33 +00:00
|
|
|
|
2018-02-21 04:31:27 +00:00
|
|
|
const result = await up.result;
|
|
|
|
assert.ok(result.url);
|
|
|
|
assert.ok(result.id);
|
|
|
|
assert.ok(result.ownerToken);
|
|
|
|
});
|
2018-02-24 19:24:12 +00:00
|
|
|
|
|
|
|
it('can be cancelled', async function() {
|
|
|
|
const keychain = new Keychain();
|
2018-06-22 20:17:23 +00:00
|
|
|
const enc = keychain.encryptStream(plaintext);
|
2018-02-24 19:24:12 +00:00
|
|
|
const meta = await keychain.encryptMetadata(metadata);
|
|
|
|
const verifierB64 = await keychain.authKeyB64();
|
|
|
|
const p = function() {};
|
2018-06-25 17:57:52 +00:00
|
|
|
const up = api.uploadWs(enc.stream, enc.streamInfo, meta, verifierB64, p);
|
2018-02-24 19:24:12 +00:00
|
|
|
up.cancel();
|
|
|
|
try {
|
|
|
|
await up.result;
|
|
|
|
assert.fail('not cancelled');
|
|
|
|
} catch (e) {
|
|
|
|
assert.equal(e.message, '0');
|
|
|
|
}
|
|
|
|
});
|
2018-02-21 04:31:27 +00:00
|
|
|
});
|
|
|
|
});
|