Skip to content

Commit 0148483

Browse files
test(jco): add async record lower test
1 parent 59c57e6 commit 0148483

3 files changed

Lines changed: 21 additions & 1 deletion

File tree

crates/test-components/src/bin/stream_rx.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ use wit_bindgen::StreamReader;
1111
use bindings::exports::jco::test_components::use_stream_async;
1212
use bindings::exports::jco::test_components::use_stream_sync;
1313

14+
use bindings::exports::jco::test_components::use_stream_async::ExampleRecord;
15+
1416
struct Component;
1517

1618
impl use_stream_sync::Guest for Component {
@@ -71,6 +73,10 @@ impl use_stream_async::Guest for Component {
7173
async fn read_stream_values_string(rx: StreamReader<String>) -> Vec<String> {
7274
read_async_values(rx).await
7375
}
76+
77+
async fn read_stream_values_record(rx: StreamReader<ExampleRecord>) -> Vec<ExampleRecord> {
78+
read_async_values(rx).await
79+
}
7480
}
7581

7682
async fn read_async_values<T>(mut rx: StreamReader<T>) -> Vec<T> {

crates/test-components/wit/all.wit

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,7 @@ interface use-stream-async {
212212

213213
read-stream-values-string: async func(s: stream<string>) -> list<string>;
214214

215-
// read-stream-values-record: async func(s: stream<example-record>) -> list<example-record>;
215+
read-stream-values-record: async func(s: stream<example-record>) -> list<example-record>;
216216

217217
// read-stream-values-variant: async func(s: stream<example-variant>) -> list<example-variant>;
218218

packages/jco/test/p3/stream-lowers.js

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,20 @@ suite("stream<T> lowers", () => {
214214
assert.deepEqual(returnedVals, vals);
215215
});
216216

217+
test.concurrent("record", async () => {
218+
assert.instanceOf(instance["jco:test-components/use-stream-async"].readStreamValuesRecord, AsyncFunction);
219+
220+
let vals = [
221+
{ id: 3, idStr: "three" },
222+
{ id: 2, idStr: "two" },
223+
{ id: 1, idStr: "one" },
224+
];
225+
let returnedVals = await instance["jco:test-components/use-stream-async"].readStreamValuesRecord(
226+
createReadableStreamFromValues(vals),
227+
);
228+
assert.deepEqual(returnedVals, vals);
229+
});
230+
217231
});
218232

219233
function createReadableStreamFromValues(vals) {

0 commit comments

Comments
 (0)