@@ -8,25 +8,6 @@ import (
8
8
"github.com/cirocosta/asciinema-edit/editor"
9
9
)
10
10
11
- var (
12
- event1 = & cast.Event {
13
- Time : 1 ,
14
- Data : "event1" ,
15
- }
16
- event1_2 = & cast.Event {
17
- Time : 1.2 ,
18
- Data : "event1_2" ,
19
- }
20
- event1_6 = & cast.Event {
21
- Time : 1.6 ,
22
- Data : "event1_6" ,
23
- }
24
- event2 = & cast.Event {
25
- Time : 2 ,
26
- Data : "event2" ,
27
- }
28
- )
29
-
30
11
var _ = Describe ("Cut" , func () {
31
12
Context ("with nil cast" , func () {
32
13
It ("fails" , func () {
@@ -48,12 +29,30 @@ var _ = Describe("Cut", func() {
48
29
49
30
Context ("with non-empty event stream" , func () {
50
31
var (
51
- err error
52
- data * cast.Cast
53
- initialNumberOfEvents int
32
+ err error
33
+ data * cast.Cast
34
+ initialNumberOfEvents int
35
+ event1 , event1_2 , event1_6 , event2 * cast.Event
54
36
)
55
37
56
38
BeforeEach (func () {
39
+ event1 = & cast.Event {
40
+ Time : 1 ,
41
+ Data : "event1" ,
42
+ }
43
+ event1_2 = & cast.Event {
44
+ Time : 1.2 ,
45
+ Data : "event1_2" ,
46
+ }
47
+ event1_6 = & cast.Event {
48
+ Time : 1.6 ,
49
+ Data : "event1_6" ,
50
+ }
51
+ event2 = & cast.Event {
52
+ Time : 2 ,
53
+ Data : "event2" ,
54
+ }
55
+
57
56
data = & cast.Cast {
58
57
EventStream : []* cast.Event {
59
58
event1 ,
@@ -71,19 +70,52 @@ var _ = Describe("Cut", func() {
71
70
Expect (err ).ToNot (Succeed ())
72
71
})
73
72
74
- It ("cuts single frame if `from` == `to`" , func () {
75
- err = editor .Cut (data , 1.2 , 1.2 )
76
- Expect (err ).To (Succeed ())
77
-
78
- Expect (data .EventStream ).To (ContainElement (event1 ))
79
- Expect (data .EventStream ).ToNot (ContainElement (event1_2 ))
80
- Expect (data .EventStream ).To (ContainElement (event1_6 ))
81
- Expect (data .EventStream ).To (ContainElement (event2 ))
73
+ Context ("cutting a single frame when `from` == `to`" , func () {
74
+ JustBeforeEach (func () {
75
+ err = editor .Cut (data , 1.2 , 1.2 )
76
+ Expect (err ).To (Succeed ())
77
+ })
78
+
79
+ It ("removes the frame" , func () {
80
+ Expect (data .EventStream ).To (ContainElement (event1 ))
81
+ Expect (data .EventStream ).ToNot (ContainElement (event1_2 ))
82
+ Expect (data .EventStream ).To (ContainElement (event1_6 ))
83
+ Expect (data .EventStream ).To (ContainElement (event2 ))
84
+
85
+ Expect (len (data .EventStream )).
86
+ To (Equal (initialNumberOfEvents - 1 ))
87
+ })
88
+
89
+ It ("adjusts the remaining time stamps" , func () {
90
+ Expect (event1 .Time ).To (Equal (float64 (1 )))
91
+ Expect (event1_6 .Time ).To (Equal (float64 (1.2 )))
92
+ Expect (event2 .Time ).To (Equal (float64 (1.6 )))
93
+ })
94
+ })
82
95
83
- Expect (len (data .EventStream )).To (Equal (initialNumberOfEvents - 1 ))
96
+ Context ("cutting range without bounds included" , func () {
97
+ JustBeforeEach (func () {
98
+ err = editor .Cut (data , 1.2 , 1.6 )
99
+ Expect (err ).To (Succeed ())
100
+ })
101
+
102
+ It ("removes the frame" , func () {
103
+ Expect (data .EventStream ).To (ContainElement (event1 ))
104
+ Expect (data .EventStream ).ToNot (ContainElement (event1_2 ))
105
+ Expect (data .EventStream ).ToNot (ContainElement (event1_6 ))
106
+ Expect (data .EventStream ).To (ContainElement (event2 ))
107
+
108
+ Expect (len (data .EventStream )).
109
+ To (Equal (initialNumberOfEvents - 2 ))
110
+ })
111
+
112
+ It ("adjusts the remaining time stamps" , func () {
113
+ Expect (event1 .Time ).To (Equal (float64 (1 )))
114
+ Expect (event2 .Time ).To (Equal (float64 (1.2 )))
115
+ })
84
116
})
85
117
86
- It ("cuts frames in range" , func () {
118
+ It ("cuts frames in range containing last element " , func () {
87
119
err = editor .Cut (data , 1.2 , 2 )
88
120
Expect (err ).To (Succeed ())
89
121
@@ -92,7 +124,8 @@ var _ = Describe("Cut", func() {
92
124
Expect (data .EventStream ).ToNot (ContainElement (event1_6 ))
93
125
Expect (data .EventStream ).ToNot (ContainElement (event2 ))
94
126
95
- Expect (len (data .EventStream )).To (Equal (initialNumberOfEvents - 3 ))
127
+ Expect (len (data .EventStream )).
128
+ To (Equal (initialNumberOfEvents - 3 ))
96
129
})
97
130
})
98
131
})
0 commit comments