@@ -2,93 +2,115 @@ import { promisify } from "./promisify.ts";
2
2
import { assert } from "./deps_test.ts" ;
3
3
4
4
Deno . test ( "promisify()" , async ( t ) => {
5
- await t . step ( "keep all results" , async ( ) => {
6
- const [ get , resolve ] = promisify < number > ( ) ;
5
+ await t . step ( "without forceQueued" , async ( t ) => {
6
+ await t . step ( "keep all results" , async ( ) => {
7
+ const [ get , resolve ] = promisify < number > ( ) ;
7
8
8
- const pending = get ( ) ;
9
- resolve ( 0 ) ;
10
- resolve ( 1 ) ;
11
- assert ( await pending === 0 ) ;
12
- assert ( await get ( ) === 1 ) ;
13
- resolve ( 2 ) ;
14
- assert ( await get ( ) === 2 ) ;
15
- resolve ( 3 ) ;
16
- resolve ( 4 ) ;
17
- assert ( await get ( ) === 3 ) ;
18
- assert ( await get ( ) === 4 ) ;
19
- resolve ( 5 ) ;
20
- resolve ( 6 ) ;
21
- resolve ( 7 ) ;
22
- assert ( await get ( ) === 5 ) ;
23
- resolve ( 8 ) ;
24
- assert ( await get ( ) === 6 ) ;
25
- assert ( await get ( ) === 7 ) ;
26
- assert ( await get ( ) === 8 ) ;
27
- } ) ;
9
+ const pending = get ( ) ;
10
+ resolve ( 0 ) ;
11
+ resolve ( 1 ) ;
12
+ assert ( await pending === 0 ) ;
13
+ assert ( await get ( ) === 1 ) ;
14
+ resolve ( 2 ) ;
15
+ assert ( await get ( ) === 2 ) ;
16
+ resolve ( 3 ) ;
17
+ resolve ( 4 ) ;
18
+ assert ( await get ( ) === 3 ) ;
19
+ assert ( await get ( ) === 4 ) ;
20
+ resolve ( 5 ) ;
21
+ resolve ( 6 ) ;
22
+ resolve ( 7 ) ;
23
+ assert ( await get ( ) === 5 ) ;
24
+ resolve ( 8 ) ;
25
+ assert ( await get ( ) === 6 ) ;
26
+ assert ( await get ( ) === 7 ) ;
27
+ assert ( await get ( ) === 8 ) ;
28
+ } ) ;
28
29
29
- await t . step ( "keep nothing" , async ( ) => {
30
- const [ get , resolve ] = promisify < number > ( { maxQueued : 0 } ) ;
30
+ await t . step ( "keep nothing" , async ( ) => {
31
+ const [ get , resolve ] = promisify < number > ( { maxQueued : 0 } ) ;
31
32
32
- let pending = get ( ) ;
33
- resolve ( 1 ) ;
34
- assert ( await pending === 1 ) ;
35
- resolve ( 2 ) ;
36
- resolve ( 3 ) ;
37
- pending = get ( ) ;
38
- resolve ( 4 ) ;
39
- assert ( await pending === 4 ) ;
40
- pending = get ( ) ;
41
- resolve ( 5 ) ;
42
- resolve ( 6 ) ;
43
- assert ( await pending === 5 ) ;
44
- } ) ;
33
+ let pending = get ( ) ;
34
+ resolve ( 1 ) ;
35
+ assert ( await pending === 1 ) ;
36
+ resolve ( 2 ) ;
37
+ resolve ( 3 ) ;
38
+ pending = get ( ) ;
39
+ resolve ( 4 ) ;
40
+ assert ( await pending === 4 ) ;
41
+ pending = get ( ) ;
42
+ resolve ( 5 ) ;
43
+ resolve ( 6 ) ;
44
+ assert ( await pending === 5 ) ;
45
+ } ) ;
46
+
47
+ await t . step ( "keep the latest result" , async ( ) => {
48
+ const [ get , resolve ] = promisify < number > ( { maxQueued : 1 } ) ;
49
+
50
+ let pending = get ( ) ;
51
+ resolve ( 1 ) ;
52
+ assert ( await pending === 1 ) ;
53
+ resolve ( 2 ) ;
54
+ resolve ( 3 ) ;
55
+ assert ( await get ( ) === 3 ) ;
56
+ resolve ( 4 ) ;
57
+ resolve ( 5 ) ;
58
+ resolve ( 6 ) ;
59
+ assert ( await get ( ) === 6 ) ;
60
+ pending = get ( ) ;
61
+ resolve ( 7 ) ;
62
+ resolve ( 8 ) ;
63
+ resolve ( 9 ) ;
64
+ assert ( await pending === 7 ) ;
65
+ assert ( await get ( ) === 9 ) ;
66
+ } ) ;
45
67
46
- await t . step ( "keep the latest result " , async ( ) => {
47
- const [ get , resolve ] = promisify < number > ( { maxQueued : 1 } ) ;
68
+ await t . step ( "keep the latest and second latest results " , async ( ) => {
69
+ const [ get , resolve ] = promisify < number > ( { maxQueued : 2 } ) ;
48
70
49
- let pending = get ( ) ;
50
- resolve ( 1 ) ;
51
- assert ( await pending === 1 ) ;
52
- resolve ( 2 ) ;
53
- resolve ( 3 ) ;
54
- assert ( await get ( ) === 3 ) ;
55
- resolve ( 4 ) ;
56
- resolve ( 5 ) ;
57
- resolve ( 6 ) ;
58
- assert ( await get ( ) === 6 ) ;
59
- pending = get ( ) ;
60
- resolve ( 7 ) ;
61
- resolve ( 8 ) ;
62
- resolve ( 9 ) ;
63
- assert ( await pending === 7 ) ;
64
- assert ( await get ( ) === 9 ) ;
71
+ resolve ( 1 ) ;
72
+ let pending = get ( ) ;
73
+ assert ( await pending === 1 ) ;
74
+ resolve ( 2 ) ;
75
+ resolve ( 3 ) ;
76
+ assert ( await get ( ) === 2 ) ;
77
+ assert ( await get ( ) === 3 ) ;
78
+ resolve ( 4 ) ;
79
+ resolve ( 5 ) ;
80
+ resolve ( 6 ) ;
81
+ assert ( await get ( ) === 5 ) ;
82
+ resolve ( 7 ) ;
83
+ resolve ( 8 ) ;
84
+ assert ( await get ( ) === 7 ) ;
85
+ assert ( await get ( ) === 8 ) ;
86
+ pending = get ( ) ;
87
+ resolve ( 9 ) ;
88
+ resolve ( 10 ) ;
89
+ resolve ( 11 ) ;
90
+ resolve ( 12 ) ;
91
+ assert ( await pending === 9 ) ;
92
+ assert ( await get ( ) === 11 ) ;
93
+ assert ( await get ( ) === 12 ) ;
94
+ } ) ;
65
95
} ) ;
66
96
67
- await t . step ( "keep the latest and second latest results" , async ( ) => {
68
- const [ get , resolve ] = promisify < number > ( { maxQueued : 2 } ) ;
97
+ await t . step ( "with forceQueued" , async ( t ) => {
98
+ await t . step ( "keep the latest result" , async ( ) => {
99
+ const [ get , resolve ] = promisify < number > ( { maxQueued : 1 } ) ;
69
100
70
- let pending = get ( ) ;
71
- resolve ( 1 ) ;
72
- assert ( await pending === 1 ) ;
73
- resolve ( 2 ) ;
74
- resolve ( 3 ) ;
75
- assert ( await get ( ) === 2 ) ;
76
- assert ( await get ( ) === 3 ) ;
77
- resolve ( 4 ) ;
78
- resolve ( 5 ) ;
79
- resolve ( 6 ) ;
80
- assert ( await get ( ) === 5 ) ;
81
- resolve ( 7 ) ;
82
- resolve ( 8 ) ;
83
- assert ( await get ( ) === 7 ) ;
84
- assert ( await get ( ) === 8 ) ;
85
- pending = get ( ) ;
86
- resolve ( 9 ) ;
87
- resolve ( 10 ) ;
88
- resolve ( 11 ) ;
89
- resolve ( 12 ) ;
90
- assert ( await pending === 9 ) ;
91
- assert ( await get ( ) === 11 ) ;
92
- assert ( await get ( ) === 12 ) ;
101
+ resolve ( 1 ) ;
102
+ const pending = get ( ) ;
103
+ assert ( await pending === 1 ) ;
104
+ resolve ( 2 ) ;
105
+ resolve ( 20 , { forceQueued : true } ) ;
106
+ resolve ( 3 ) ;
107
+ resolve ( 4 ) ;
108
+ resolve ( 30 , { forceQueued : true } ) ;
109
+ resolve ( 40 , { forceQueued : true } ) ;
110
+ assert ( await get ( ) === 20 ) ;
111
+ assert ( await get ( ) === 30 ) ;
112
+ assert ( await get ( ) === 40 ) ;
113
+ assert ( await get ( ) === 4 ) ;
114
+ } ) ;
93
115
} ) ;
94
116
} ) ;
0 commit comments