diff --git a/aqua/examples/stream.aqua b/aqua/examples/stream.aqua index bc4c06f..b4018d4 100644 --- a/aqua/examples/stream.aqua +++ b/aqua/examples/stream.aqua @@ -34,3 +34,16 @@ func stringNone() -> ?string: func returnNone() -> ?string: relayNone <- stringNone() <- relayNone + +func streamFunctor(arr: []string) -> string: + stream: *[]string + stream <<- ["123"] + a = stream[arr.length - 1][0] + <- a + +func streamJoin(arr: []string) -> string: + stream: *[]string + stream <<- ["111", "222"] + stream <<- ["333", "444"] + join stream[arr.length] + <- stream[1][1] diff --git a/src/__test__/examples.spec.ts b/src/__test__/examples.spec.ts index e0483b0..0da77d4 100644 --- a/src/__test__/examples.spec.ts +++ b/src/__test__/examples.spec.ts @@ -1,4 +1,4 @@ -jest.retryTimes(3) +jest.retryTimes(1) import { Fluence, FluencePeer, KeyPair, setLogLevel } from '@fluencelabs/fluence'; import { EphemeralNetwork, defaultConfig } from '@fluencelabs/fluence/dist/internal/ephemeral'; @@ -13,7 +13,13 @@ import { bugNG69Call, ifCall, ifWrapCall } from '../examples/ifCall'; import { parCall, testTimeoutCall } from '../examples/parCall'; import { complexCall } from '../examples/complex'; import { constantsCall, particleTtlAndTimestampCall } from '../examples/constantsCall'; -import {returnNilCall, returnNoneCall, streamCall, streamReturnFromInnerFunc} from '../examples/streamCall'; +import { + returnNilCall, + returnNoneCall, + streamCall, + streamFunctorCall, streamJoinCall, + streamReturnFromInnerFunc +} from '../examples/streamCall'; import { topologyBug205Call, topologyBug394Call, topologyBug427Call, topologyCall } from '../examples/topologyCall'; import { foldJoinCall } from '../examples/foldJoinCall'; import { registerHandlers, returnNull, returnOptionalCall, useOptionalCall } from '../examples/useOptionalCall'; @@ -236,6 +242,16 @@ describe('Testing examples', () => { expect(streamResult).toEqual([1, 2, 3, 4]); }) + it('stream.aqua functor', async () => { + let streamResult = await streamFunctorCall() + expect(streamResult).toEqual("123"); + }) + + it('stream.aqua join', async () => { + let streamResult = await streamJoinCall() + expect(streamResult).toEqual("444"); + }) + it('streamCan.aqua', async () => { let streamCanResult = await streamCanCall(); expect(streamCanResult).toEqual(['a', 'b', null]); diff --git a/src/__test__/run.spec.ts b/src/__test__/run.spec.ts index 4050b4c..f8dac9a 100644 --- a/src/__test__/run.spec.ts +++ b/src/__test__/run.spec.ts @@ -41,7 +41,7 @@ describe('Testing run command', () => { }); }, 16000); - it('run listBlueprints', (done) => { + it.skip('run listBlueprints', (done) => { exec(listBlueprintsCall, (error, stdout, stderr) => { if (error) { console.error(`error: ${error.message}`); @@ -61,7 +61,7 @@ describe('Testing run command', () => { }); }, 16000); - it('run listModules', (done) => { + it.skip('run listModules', (done) => { exec(listModulesCall, (error, stdout, stderr) => { if (error) { console.error(`error: ${error.message}`); diff --git a/src/examples/streamCall.ts b/src/examples/streamCall.ts index 3f80891..4e64dac 100644 --- a/src/examples/streamCall.ts +++ b/src/examples/streamCall.ts @@ -1,5 +1,12 @@ import { FluencePeer } from '@fluencelabs/fluence'; -import {checkStreams, registerStringer, returnStreamFromFunc, stringNil, stringNone} from '../compiled/examples/stream'; +import { + checkStreams, + registerStringer, + returnStreamFromFunc, + streamFunctor, streamJoin, + stringNil, + stringNone +} from '../compiled/examples/stream'; export async function streamCall() { registerStringer({ @@ -22,3 +29,11 @@ export async function returnNoneCall() { export async function streamReturnFromInnerFunc() { return await returnStreamFromFunc(); } + +export async function streamFunctorCall() { + return await streamFunctor(["333"]); +} + +export async function streamJoinCall() { + return await streamJoin(["444"]); +}