satellite/console/wasm: add js tests
Change-Id: I8b1b0e81500836e0408e0517edb6c696698ab5f7
This commit is contained in:
parent
1f1d9fce58
commit
b7d8dee5e9
@ -190,6 +190,16 @@ pipeline {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
stage('wasm npm') {
|
||||||
|
steps {
|
||||||
|
dir(".build") {
|
||||||
|
sh 'cp -r ../satellite/console/wasm/tests/ .'
|
||||||
|
sh 'cd tests && cp "$(go env GOROOT)/misc/wasm/wasm_exec.js" .'
|
||||||
|
sh 'cd tests && npm install && npm run test'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
stage('storagenode npm') {
|
stage('storagenode npm') {
|
||||||
steps {
|
steps {
|
||||||
dir("web/storagenode") {
|
dir("web/storagenode") {
|
||||||
|
54
satellite/console/wasm/tests/main.spec.js
Normal file
54
satellite/console/wasm/tests/main.spec.js
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
// Copyright (C) 2021 Storj Labs, Inc.
|
||||||
|
// See LICENSE for copying information
|
||||||
|
|
||||||
|
require('./wasm_exec.js');
|
||||||
|
|
||||||
|
const fs = require('fs');
|
||||||
|
const path = require('path');
|
||||||
|
|
||||||
|
describe('main.wasm Tests', () => {
|
||||||
|
beforeAll(async () => {
|
||||||
|
const go = new Go();
|
||||||
|
wasmPath = __dirname;
|
||||||
|
if (process.env.WASM_PATH) {
|
||||||
|
wasmPath = process.env.WASM_PATH;
|
||||||
|
}
|
||||||
|
wasmPath = path.resolve(wasmPath, 'main.wasm');
|
||||||
|
const buffer = fs.readFileSync(wasmPath);
|
||||||
|
await WebAssembly.instantiate(buffer, go.importObject).then(results => {
|
||||||
|
go.run(results.instance);
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
describe('generateAccessGrant function', () => {
|
||||||
|
test('returns an error when called without arguments', async () => {
|
||||||
|
const result = generateAccessGrant();
|
||||||
|
expect(result["error"]).toContain("not enough argument")
|
||||||
|
expect(result["value"]).toBeNull()
|
||||||
|
});
|
||||||
|
test('happy path returns an access grant', async () => {
|
||||||
|
const apiKey = "13YqeGFpvtzbUp1QAfpvy2E5ZqLUFFNhEkv7153UDGDVnSmTuYYa7tKUnENGgvFXCCSFP7zNhKw6fsuQmWG5JGdQJbXVaVYFhoM2LcA"
|
||||||
|
const projectID = "b9e663e0-69e0-48e9-8eb2-4079be85e488"
|
||||||
|
const result = generateAccessGrant("a",apiKey, "supersecretpassphrase", projectID);
|
||||||
|
expect(result["error"]).toEqual("")
|
||||||
|
expect(result["value"]).toEqual("158UWUf6FHtCk8RGQn2JAXETNRnVwyoF7yEQQnuvPrLbsCPpttuAVWwzQ2YgD2bpQLpdBnctHssvQsqeju7kn7gz3LEJZSdRqyRG6rA9Da3PLGsawWMtM3NdGVqq9akyEmotsN7eMJVC1mfTsupiYXeHioTTTg11kY")
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('setAPIKeyPermission function', () => {
|
||||||
|
test('returns an error when called without arguments', async () => {
|
||||||
|
const result = setAPIKeyPermission();
|
||||||
|
expect(result["error"]).toContain("not enough arguments")
|
||||||
|
expect(result["value"]).toBeNull()
|
||||||
|
});
|
||||||
|
test('default permissions returns an access grant', async () => {
|
||||||
|
const apiKey = "13YqeGFpvtzbUp1QAfpvy2E5ZqLUFFNhEkv7153UDGDVnSmTuYYa7tKUnENGgvFXCCSFP7zNhKw6fsuQmWG5JGdQJbXVaVYFhoM2LcA"
|
||||||
|
const projectID = "b9e663e0-69e0-48e9-8eb2-4079be85e488"
|
||||||
|
const perm = newPermission()
|
||||||
|
perm["AllowDownload"] = true
|
||||||
|
const result = setAPIKeyPermission(apiKey, [], perm);
|
||||||
|
expect(result["error"]).toEqual("")
|
||||||
|
expect(result["value"]).toEqual("19JjrwZJK1Ck5PdhRtxujGUnzbbiPYSSPZGyE8xrTbxVaJSEr9JL4vXpca3bSH2igjfeYsWeoe7rzo4QTGnwd29Pa924rtXzRjDzSxvkt4UdFd6iiCg")
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
12
satellite/console/wasm/tests/package.json
Normal file
12
satellite/console/wasm/tests/package.json
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"name": "testing-wasm",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"scripts": {
|
||||||
|
"build": "GOOS=js GOARCH=wasm go build -o main.wasm storj.io/storj/satellite/console/wasm",
|
||||||
|
"pretest": "npm run build",
|
||||||
|
"test": "jest || true"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"jest": "^23.5.0"
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user