@@ -4,64 +4,37 @@ import AlchemyTest
4
4
import NIOEmbedded
5
5
6
6
final class SchedulerTests : TestCase < TestApp > {
7
- private var scheduler = Scheduler ( )
8
- private var loop = EmbeddedEventLoop ( )
9
7
private var queue = Queue . fake ( )
10
8
11
9
override func setUp( ) {
12
10
super. setUp ( )
13
- self . scheduler = Scheduler ( )
14
- self . loop = EmbeddedEventLoop ( )
15
11
self . queue = Queue . fake ( )
16
12
}
17
13
18
14
func testScheduleTask( ) {
19
- makeSchedule ( ) . everyDay ( )
20
- scheduler. start ( on: loop)
21
- loop. advanceTime ( by: . hours( 24 ) )
22
- waitForExpectations ( timeout: 0.1 )
15
+ makeSchedule ( ) . everySecond ( )
16
+ app. background ( " schedule " )
17
+ waitForExpectations ( timeout: 2 )
23
18
}
24
19
25
20
func testScheduleJob( ) async throws {
26
- scheduler. job ( TestJob ( ) ) . everyDay ( )
27
- scheduler. start ( on: loop)
28
- loop. advanceTime ( by: . hours( 24 ) )
29
- try await Task . sleep ( nanoseconds: 1 * 1_000_000 )
21
+ Schedule . job ( TestJob ( ) ) . everySecond ( )
22
+ app. background ( " schedule " )
23
+ try await Task . sleep ( for: . seconds( 1 ) )
30
24
await queue. assertPushed ( TestJob . self)
31
25
}
32
26
33
- func testNoRunWithoutStart( ) {
34
- makeSchedule ( invertExpect: true ) . everyDay ( )
35
- waitForExpectations ( timeout: kMinTimeout)
36
- }
37
-
38
- func testStart( ) {
39
- makeSchedule ( ) . everyDay ( )
40
- scheduler. start ( on: loop)
41
- loop. advanceTime ( by: . hours( 24 ) )
42
- waitForExpectations ( timeout: kMinTimeout)
43
- }
44
-
45
- func testStartTwiceRunsOnce( ) {
46
- makeSchedule ( ) . everyDay ( )
47
- scheduler. start ( on: loop)
48
- scheduler. start ( on: loop)
49
- loop. advanceTime ( by: . hours( 24 ) )
50
- waitForExpectations ( timeout: kMinTimeout)
51
- }
52
-
53
27
func testDoesntRunNoNext( ) {
54
28
makeSchedule ( invertExpect: true ) . cron ( " 0 0 0 11 9 * 1993 " )
55
- scheduler. start ( on: loop)
56
- loop. advanceTime ( by: . hours( 24 ) )
57
- waitForExpectations ( timeout: kMinTimeout)
29
+ app. background ( " schedule " )
30
+ waitForExpectations ( timeout: 2 )
58
31
}
59
32
60
33
private func makeSchedule( invertExpect: Bool = false ) -> Frequency {
61
34
let exp = expectation ( description: " " )
62
35
exp. isInverted = invertExpect
63
36
var didRun = false
64
- return scheduler . task {
37
+ return Schedule . task {
65
38
// Don't let the schedule fullfill this expectation twice.
66
39
guard !didRun else { return }
67
40
didRun = true
0 commit comments