Skip to content
This repository was archived by the owner on Jul 10, 2025. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
ae546ce
Added the js-client api package, WIP
coder11 Feb 6, 2023
e331122
smoke test (WIP)
coder11 Feb 7, 2023
b84336a
extracting, re-arranging making sure interface don't get in the way
coder11 Feb 7, 2023
ba0ed1b
Take one down, patch it around,
coder11 Feb 7, 2023
d5b090e
kinda builds, but not completely
coder11 Feb 7, 2023
f8eb751
misc fixes
coder11 Feb 7, 2023
8d27bc6
A little fix in build script
coder11 Feb 8, 2023
1053bee
More tests
coder11 Feb 8, 2023
620af63
node version
coder11 Feb 8, 2023
ac7f477
Fix build script
coder11 Feb 8, 2023
dda89e9
works now
coder11 Feb 8, 2023
239b4a6
remove unused code
coder11 Feb 8, 2023
95db045
Some fixes, some renaming
coder11 Feb 9, 2023
7fe4290
Some housekeeping and maintenance
coder11 Feb 9, 2023
9a325e7
Fix singlemodule srv
coder11 Feb 9, 2023
391541f
some more rearranging and housekeeping
coder11 Feb 9, 2023
0e998ff
rework keypair API
coder11 Feb 9, 2023
1483ef2
Simplified keypair api
coder11 Feb 9, 2023
e590c00
finalize keypair api
coder11 Feb 9, 2023
206b6cb
Using createResource for smoke test
coder11 Feb 9, 2023
d656304
Exporting compilerSupport/v5 explicitly
coder11 Feb 10, 2023
a3e848a
comment out cra tests
coder11 Feb 10, 2023
8efe298
trick/hack for compiler support "compat"
coder11 Feb 10, 2023
04cae90
add a couple of comments
coder11 Feb 10, 2023
185bbad
fix package name
coder11 Feb 10, 2023
22c543f
reuse package we already have
coder11 Feb 10, 2023
1714203
versions, renaming, etc
coder11 Feb 10, 2023
9b1e558
comments
coder11 Feb 10, 2023
dce6cc3
hate replacements
coder11 Feb 10, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 0 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,19 +28,6 @@ Build all packages
pnpm -r build
```

### Repository structure

| Folder | Package | Description |
| --------------------------------- | ------------------------------------- | --------------------------------------------- |
| packages/core/js-peer | @fluencelabs/js-peer | TypeScript implementation of the Fluence Peer |
| packages/core/interfaces | @fluencelabs/interfaces | Common interfaces used in Fluence Peer |
| packages/core/connection | @fluencelabs/connection | Connectivity layer used in Fluence Peer |
| packages/core/keypair | @fluencelabs/keypair | Key Pair implementation |
| packages/marine/background-runner | @fluencelabs/marine.background-runner | MarineJS background runner |
| packages/marine/deps-loader.node | @fluencelabs/marine.deps-loader.node | MarineJS deps loader for nodejs |
| packages/marine/deps-loader.web | @fluencelabs/marine.deps-loader.web | MarineJS deps loader for web |
| packages/marine/worker-script | @fluencelabs/marine.worker-script | MarineJS background worker script |

### Running tests

Tests are split into unit and integration categories. By default integration tests require a locally running Fluence node with 4310 port open for ws connections. The dependency can be started with docker
Expand Down
10 changes: 8 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,18 @@
"node": ">=10",
"pnpm": ">=3"
},
"scripts": {},
"scripts": {
"simulate-cdn": "http-server -p 8765 ./packages/client/js-client.web.standalone/dist"
},
"author": "Fluence Labs",
"license": "Apache-2.0",
"dependencies": {},
"devDependencies": {
"http-server": "14.1.1",
"@types/node": "16.11.59",
"ts-node": "10.9.1",
"typescript": "4.7"
"typescript": "4.7",
"@fluencelabs/aqua-lib": "0.6.0",
"@fluencelabs/aqua": "0.9.1-374"
}
}
5 changes: 5 additions & 0 deletions packages/@tests/aqua/_aqua/smoke_test.aqua
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
import "@fluencelabs/registry/resources-api.aqua"

func smokeTest(label: string) -> ?string, *string:
res, errors <- createResource(label)
<- res, errors
28 changes: 28 additions & 0 deletions packages/@tests/aqua/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
{
"name": "@test/aqua_for_test",
"version": "0.1.0",
"description": "Shared aqua code for tests",
"main": "./dist/index.js",
"typings": "./dist/index.d.ts",
"engines": {
"node": ">=10",
"pnpm": ">=3"
},
"type": "module",
"scripts": {
"build": "tsc",
"compile-aqua": "aqua -i ./_aqua -o ./src/_aqua"
},
"repository": "https://github.com/fluencelabs/fluence-js",
"author": "Fluence Labs",
"license": "Apache-2.0",
"dependencies": {
"@fluencelabs/fluence": "workspace:0.60.0",
"@fluencelabs/fluence-network-environment": "1.0.13",
"base64-js": "1.5.1"
},
"devDependencies": {
"@fluencelabs/aqua": "0.9.4",
"@fluencelabs/registry": "0.7.0"
}
}
284 changes: 284 additions & 0 deletions packages/@tests/aqua/src/_aqua/smoke_test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,284 @@
/**
*
* This file is auto-generated. Do not edit manually: changes may be erased.
* Generated by Aqua compiler: https://github.com/fluencelabs/aqua/.
* If you find any bugs, please write an issue on GitHub: https://github.com/fluencelabs/aqua/issues
* Aqua version: 0.9.4
*
*/
import { FluencePeer } from '@fluencelabs/fluence';
import type { CallParams$$ } from '@fluencelabs/fluence/dist/internal/compilerSupport/v4';
import { callFunction$$, registerService$$ } from '@fluencelabs/fluence/dist/internal/compilerSupport/v4';

// Services

// Functions

export type SmokeTestResult = [string | null, string[]];
export function smokeTest(label: string, config?: { ttl?: number }): Promise<SmokeTestResult>;

export function smokeTest(peer: FluencePeer, label: string, config?: { ttl?: number }): Promise<SmokeTestResult>;

export function smokeTest(...args: any) {
let script = `
(xor
(seq
(seq
(seq
(call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-)
(call %init_peer_id% ("getDataSrv" "label") [] label)
)
(new $resource_id
(new $successful
(seq
(seq
(seq
(call %init_peer_id% ("peer" "timestamp_sec") [] t)
(xor
(seq
(seq
(call -relay- ("registry" "get_key_bytes") [label [] t [] ""] bytes)
(xor
(call %init_peer_id% ("sig" "sign") [bytes] result)
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1])
)
)
(xor
(match result.$.success! false
(ap result.$.error.[0]! $error)
)
(seq
(seq
(seq
(seq
(seq
(seq
(ap result.$.signature! result_flat)
(call -relay- ("registry" "get_key_id") [label %init_peer_id%] id)
)
(call -relay- ("op" "string_to_b58") [id] k)
)
(call -relay- ("kad" "neighborhood") [k [] []] nodes)
)
(par
(fold nodes n-0
(par
(seq
(xor
(xor
(seq
(seq
(seq
(call n-0 ("peer" "timestamp_sec") [] t-0)
(call n-0 ("trust-graph" "get_weight") [%init_peer_id% t-0] weight)
)
(call n-0 ("registry" "register_key") [label [] t [] "" result_flat.$.[0]! weight t-0] result-0)
)
(xor
(match result-0.$.success! true
(ap true $successful)
)
(ap result-0.$.error! $error)
)
)
(call n-0 ("op" "noop") [])
)
(seq
(call -relay- ("op" "noop") [])
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
)
)
(call -relay- ("op" "noop") [])
)
(next n-0)
)
(never)
)
(null)
)
)
(new $status
(new $result-1
(seq
(seq
(seq
(par
(seq
(seq
(seq
(call -relay- ("math" "sub") [1 1] sub)
(new $successful_test
(seq
(seq
(seq
(call -relay- ("math" "add") [sub 1] successful_incr)
(fold $successful s
(seq
(seq
(ap s $successful_test)
(canon -relay- $successful_test #successful_iter_canon)
)
(xor
(match #successful_iter_canon.length successful_incr
(null)
)
(next s)
)
)
(never)
)
)
(canon -relay- $successful_test #successful_result_canon)
)
(ap #successful_result_canon successful_gate)
)
)
)
(call -relay- ("math" "sub") [1 1] sub-0)
)
(ap "ok" $status)
)
(call -relay- ("peer" "timeout") [6000 "timeout"] $status)
)
(new $status_test
(seq
(seq
(seq
(call -relay- ("math" "add") [0 1] status_incr)
(fold $status s
(seq
(seq
(ap s $status_test)
(canon -relay- $status_test #status_iter_canon)
)
(xor
(match #status_iter_canon.length status_incr
(null)
)
(next s)
)
)
(never)
)
)
(canon -relay- $status_test #status_result_canon)
)
(ap #status_result_canon status_gate)
)
)
)
(xor
(match status_gate.$.[0]! "ok"
(ap true $result-1)
)
(ap false $result-1)
)
)
(new $result-1_test
(seq
(seq
(seq
(call -relay- ("math" "add") [0 1] result-1_incr)
(fold $result-1 s
(seq
(seq
(ap s $result-1_test)
(canon -relay- $result-1_test #result-1_iter_canon)
)
(xor
(match #result-1_iter_canon.length result-1_incr
(null)
)
(next s)
)
)
(never)
)
)
(canon -relay- $result-1_test #result-1_result_canon)
)
(ap #result-1_result_canon result-1_gate)
)
)
)
)
)
)
(xor
(match result-1_gate.$.[0]! false
(ap "resource wasn't created: timeout exceeded" $error)
)
(ap id $resource_id)
)
)
)
)
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3])
)
)
(canon %init_peer_id% $resource_id #-resource_id-fix-0)
)
(ap #-resource_id-fix-0 -resource_id-flat-0)
)
)
)
)
(xor
(seq
(canon %init_peer_id% $error #error_canon)
(call %init_peer_id% ("callbackSrv" "response") [-resource_id-flat-0 #error_canon])
)
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 4])
)
)
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 5])
)
`;
return callFunction$$(
args,
{
functionName: 'smokeTest',
arrow: {
tag: 'arrow',
domain: {
tag: 'labeledProduct',
fields: {
label: {
tag: 'scalar',
name: 'string',
},
},
},
codomain: {
tag: 'unlabeledProduct',
items: [
{
tag: 'option',
type: {
tag: 'scalar',
name: 'string',
},
},
{
tag: 'array',
type: {
tag: 'scalar',
name: 'string',
},
},
],
},
},
names: {
relay: '-relay-',
getDataSrv: 'getDataSrv',
callbackSrv: 'callbackSrv',
responseSrv: 'callbackSrv',
responseFnName: 'response',
errorHandlingSrv: 'errorHandlingSrv',
errorFnName: 'error',
},
},
script,
);
}
Loading