File: await.t

package info (click to toggle)
libjavascript-quickjs-perl 0.21-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 4,180 kB
  • sloc: ansic: 72,822; javascript: 7,743; perl: 1,065; makefile: 353; sh: 108
file content (43 lines) | stat: -rw-r--r-- 706 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#!/usr/bin/env perl

use strict;
use warnings;

use Test::More;
use Test::Deep;
use Test::FailWarnings;

use File::Temp;
use Cwd;

use JavaScript::QuickJS;

my $js = JavaScript::QuickJS->new();

my $cwd = Cwd::getcwd();

my $dir = File::Temp::tempdir( CLEANUP => 1 );
chdir $dir or die "chdir($dir): $!";

{
    open my $jfh, '>', "module.js";
    print {$jfh} "export let foo = 'BAR';";
}

my $got;

$js->set_globals(
    __ret => sub { $got = shift },
)->eval(<<END);
import("./module.js").then(exp => __ret(exp.foo));
END

is($got, undef, 'pre-await(): no returned value');

$js->await();

is($got, 'BAR', 'await() waited until the jobs are done');

chdir $cwd or warn "chdir($cwd): $!";

done_testing;