@@ -6,6 +6,10 @@ import { ConcurrencyExceedTimeoutException } from "../exceptions/concurrency.exc
66import { ConcurrencyInvalidTimeoutException } from "../exceptions/concurrency.invalid-timeout.exception" ;
77
88describe ( "Semaphore" , ( ) => {
9+ const delay = 60 ;
10+ const offsetLow = 5 ;
11+ const offset = 15 ;
12+
913 describe ( "Constructor" , ( ) => {
1014 it ( "should create an instance" , ( ) => {
1115 for ( const permits of [ 1 , 10 , 100 ] ) {
@@ -71,9 +75,6 @@ describe("Semaphore", () => {
7175 } ) ;
7276
7377 describe ( "`acquire` usage" , ( ) => {
74- const delay = 50 ;
75- const offset = 5 ;
76-
7778 it ( "should work with a single initial permit" , async ( ) => {
7879 // semaphore as a mutex
7980 const semaphore = new Semaphore ( ) ;
@@ -98,7 +99,7 @@ describe("Semaphore", () => {
9899 await semaphore . acquire ( ) ;
99100 } ) ;
100101
101- expect ( elapsed ) . toBeGreaterThanOrEqual ( delay - offset ) ;
102+ expect ( elapsed ) . toBeGreaterThanOrEqual ( delay - offsetLow ) ;
102103 expect ( elapsed ) . toBeLessThanOrEqual ( delay + offset ) ;
103104
104105 semaphore . release ( ) ;
@@ -124,7 +125,7 @@ describe("Semaphore", () => {
124125 await semaphore . acquire ( ) ;
125126 } ) ;
126127
127- expect ( elapsed ) . toBeGreaterThanOrEqual ( delay - offset ) ;
128+ expect ( elapsed ) . toBeGreaterThanOrEqual ( delay - offsetLow ) ;
128129 expect ( elapsed ) . toBeLessThanOrEqual ( delay + offset ) ;
129130 } ) ;
130131
@@ -138,7 +139,7 @@ describe("Semaphore", () => {
138139 await semaphore . acquire ( permits + permitOffset ) ;
139140 } ) ;
140141
141- expect ( elapsed ) . toBeGreaterThanOrEqual ( delay - offset ) ;
142+ expect ( elapsed ) . toBeGreaterThanOrEqual ( delay - offsetLow ) ;
142143 expect ( elapsed ) . toBeLessThanOrEqual ( delay + offset ) ;
143144 }
144145 } ) ;
@@ -167,25 +168,22 @@ describe("Semaphore", () => {
167168 . map ( ( [ elapsed ] ) => elapsed )
168169 . sort ( ( a , b ) => a - b ) ;
169170
170- expect ( elapsed1 ) . toBeGreaterThanOrEqual ( min - offset ) ;
171+ expect ( elapsed1 ) . toBeGreaterThanOrEqual ( min - offsetLow ) ;
171172 expect ( elapsed1 ) . toBeLessThanOrEqual ( min + offset ) ;
172- expect ( elapsed2 ) . toBeGreaterThanOrEqual ( med - offset ) ;
173+ expect ( elapsed2 ) . toBeGreaterThanOrEqual ( med - offsetLow ) ;
173174 expect ( elapsed2 ) . toBeLessThanOrEqual ( med + offset ) ;
174- expect ( elapsed3 ) . toBeGreaterThanOrEqual ( max - offset ) ;
175+ expect ( elapsed3 ) . toBeGreaterThanOrEqual ( max - offsetLow ) ;
175176 expect ( elapsed3 ) . toBeLessThanOrEqual ( max + offset ) ;
176177
177178 // The global elapsed time is very close to the slowest timeout
178- expect ( elapsed ) . toBeGreaterThanOrEqual ( max - offset ) ;
179+ expect ( elapsed ) . toBeGreaterThanOrEqual ( max - offsetLow ) ;
179180 expect ( elapsed ) . toBeLessThanOrEqual ( max + offset ) ;
180181
181182 expect ( elapsed ) . toBeGreaterThanOrEqual ( elapsed3 ) ;
182183 } ) ;
183184 } ) ;
184185
185186 describe ( "`tryAcquire` usage" , ( ) => {
186- const delay = 50 ;
187- const offset = 5 ;
188-
189187 it ( "should work with many initial tryAcquires/releases" , async ( ) => {
190188 for ( const permits of [ 5 , 8 , 13 ] ) {
191189 const semaphore = new Semaphore ( permits ) ;
@@ -196,7 +194,7 @@ describe("Semaphore", () => {
196194 await semaphore . tryAcquire ( delay * 5 , permits + permitOffset ) ;
197195 } ) ;
198196
199- expect ( elapsed ) . toBeGreaterThanOrEqual ( delay - offset ) ;
197+ expect ( elapsed ) . toBeGreaterThanOrEqual ( delay - offsetLow ) ;
200198 expect ( elapsed ) . toBeLessThanOrEqual ( delay + offset ) ;
201199 }
202200 } ) ;
0 commit comments