1
1
import { describe , expect , it } from "vitest" ;
2
2
import { DateTime } from "luxon" ;
3
- import { mergeTaskParts } from "../merge -task-parts " ;
3
+ import { buildTask } from "../build -task" ;
4
4
5
5
describe ( "Merging task parts" , ( ) => {
6
6
it ( "gives default values when called with nothing" , ( ) => {
7
- const task = mergeTaskParts ( ) ;
7
+ const task = buildTask ( ) ;
8
8
9
9
expect ( task . status . type ) . toEqual ( "UNKNOWN" ) ;
10
10
expect ( task . source . type ) . toEqual ( "UNKNOWN" ) ;
@@ -23,127 +23,127 @@ describe("Merging task parts", () => {
23
23
} ) ;
24
24
25
25
it ( "skips empty descriptions" , ( ) => {
26
- const task = mergeTaskParts ( { description : "" } , { description : "desc" } ) ;
26
+ const task = buildTask ( { description : "" } , { description : "desc" } ) ;
27
27
28
28
expect ( task . description ) . toEqual ( "desc" ) ;
29
29
} ) ;
30
30
31
31
it ( "keeps non-empty descriptions" , ( ) => {
32
- const task = mergeTaskParts ( { description : "wow" } , { description : "uh-oh!" } ) ;
32
+ const task = buildTask ( { description : "wow" } , { description : "uh-oh!" } ) ;
33
33
34
34
expect ( task . description ) . toEqual ( "wow" ) ;
35
35
} ) ;
36
36
37
37
it ( "skips invalid dates" , ( ) => {
38
- const valid = DateTime . now ( ) ;
39
- const invalid = DateTime . invalid ( "asdf " ) ;
38
+ const valid = DateTime . fromISO ( "2025-01-01" ) ;
39
+ const invalid = DateTime . invalid ( "unspecified date " ) ;
40
40
41
- const task = mergeTaskParts ( { dates : { done : invalid } } , { dates : { done : valid } } ) ;
41
+ const task = buildTask ( { dates : { done : invalid } } , { dates : { done : valid } } ) ;
42
42
43
- expect ( task . dates . done ) . toBe ( valid ) ;
43
+ expect ( task . dates . done ) . toEqual ( valid ) ;
44
44
} ) ;
45
45
46
46
it ( "keeps valid dates" , ( ) => {
47
- const now = DateTime . now ( ) ;
48
- const later = now . plus ( { minutes : 10 } ) ;
47
+ const validDate = DateTime . fromISO ( "2025-01-01" ) ;
48
+ const anotherValidDate = DateTime . fromISO ( "2025-01-02" ) ;
49
49
50
- const task = mergeTaskParts ( { dates : { done : now } } , { dates : { done : later } } ) ;
50
+ const task = buildTask ( { dates : { done : validDate } } , { dates : { done : anotherValidDate } } ) ;
51
51
52
- expect ( task . dates . done ) . toBe ( now ) ;
52
+ expect ( task . dates . done ) . toEqual ( validDate ) ;
53
53
} ) ;
54
54
55
55
it ( "skips invalid times" , ( ) => {
56
- const valid = DateTime . now ( ) ;
57
- const invalid = DateTime . invalid ( "asdf " ) ;
56
+ const valid = DateTime . fromISO ( "12:00:00Z" ) ;
57
+ const invalid = DateTime . invalid ( "unspecified time " ) ;
58
58
59
- const task = mergeTaskParts ( { times : { start : invalid } } , { times : { start : valid } } ) ;
59
+ const task = buildTask ( { times : { start : invalid } } , { times : { start : valid } } ) ;
60
60
61
- expect ( task . times . start ) . toBe ( valid ) ;
61
+ expect ( task . times . start ) . toEqual ( valid ) ;
62
62
} ) ;
63
63
64
64
it ( "keeps valid times" , ( ) => {
65
- const now = DateTime . now ( ) ;
66
- const later = now . plus ( { minutes : 10 } ) ;
65
+ const validTime = DateTime . fromISO ( "12:00:00Z" ) ;
66
+ const anotherValidTime = DateTime . fromISO ( "13:00:00Z" ) ;
67
67
68
- const task = mergeTaskParts ( { times : { start : now } } , { times : { start : later } } ) ;
68
+ const task = buildTask ( { times : { start : validTime } } , { times : { start : anotherValidTime } } ) ;
69
69
70
- expect ( task . times . start ) . toBe ( now ) ;
70
+ expect ( task . times . start ) . toEqual ( validTime ) ;
71
71
} ) ;
72
72
73
73
it ( "takes union of tags" , ( ) => {
74
- const task = mergeTaskParts ( { tags : new Set ( [ "a" , "b" ] ) } , { tags : new Set ( [ "b" , "c" ] ) } ) ;
74
+ const task = buildTask ( { tags : new Set ( [ "a" , "b" ] ) } , { tags : new Set ( [ "b" , "c" ] ) } ) ;
75
75
76
76
expect ( task . tags ) . toEqual ( new Set ( [ "a" , "b" , "c" ] ) ) ;
77
77
} ) ;
78
78
79
79
it ( "gives default priority value when unspecified" , ( ) => {
80
- const task = mergeTaskParts ( { } ) ;
80
+ const task = buildTask ( { } ) ;
81
81
82
82
expect ( task . priority ) . toEqual ( 3 ) ;
83
83
} ) ;
84
84
85
85
it ( "skips missing priority value" , ( ) => {
86
- const task = mergeTaskParts ( { } , { priority : 1 } ) ;
86
+ const task = buildTask ( { } , { priority : 1 } ) ;
87
87
88
88
expect ( task . priority ) . toEqual ( 1 ) ;
89
89
} ) ;
90
90
91
91
it ( "skips default priority value" , ( ) => {
92
- const task = mergeTaskParts ( { priority : 3 } , { priority : 1 } ) ;
92
+ const task = buildTask ( { priority : 3 } , { priority : 1 } ) ;
93
93
94
94
expect ( task . priority ) . toEqual ( 1 ) ;
95
95
} ) ;
96
96
97
97
it ( "keeps non-default priority" , ( ) => {
98
- const task = mergeTaskParts ( { priority : 1 } , { priority : 4 } ) ;
98
+ const task = buildTask ( { priority : 1 } , { priority : 4 } ) ;
99
99
100
100
expect ( task . priority ) . toEqual ( 1 ) ;
101
101
} ) ;
102
102
103
103
it ( "gives default status when unspecified" , ( ) => {
104
- const task = mergeTaskParts ( { } ) ;
104
+ const task = buildTask ( { } ) ;
105
105
106
106
expect ( task . status . type ) . toEqual ( "UNKNOWN" ) ;
107
107
} ) ;
108
108
109
109
it ( "skips missing status" , ( ) => {
110
- const task = mergeTaskParts ( { } , { status : { type : "DONE" } } ) ;
110
+ const task = buildTask ( { } , { status : { type : "DONE" } } ) ;
111
111
112
112
expect ( task . status . type ) . toEqual ( "DONE" ) ;
113
113
} ) ;
114
114
115
115
it ( "skips default status" , ( ) => {
116
- const task = mergeTaskParts ( { status : { type : "UNKNOWN" } } , { status : { type : "DONE" } } ) ;
116
+ const task = buildTask ( { status : { type : "UNKNOWN" } } , { status : { type : "DONE" } } ) ;
117
117
118
118
expect ( task . status . type ) . toEqual ( "DONE" ) ;
119
119
} ) ;
120
120
121
121
it ( "keeps non-default status" , ( ) => {
122
- const task = mergeTaskParts ( { status : { type : "DONE" } } , { status : { type : "UNKNOWN" } } ) ;
122
+ const task = buildTask ( { status : { type : "DONE" } } , { status : { type : "UNKNOWN" } } ) ;
123
123
124
124
expect ( task . status . type ) . toEqual ( "DONE" ) ;
125
125
} ) ;
126
126
127
127
it ( "gives default source when unspecified" , ( ) => {
128
- const task = mergeTaskParts ( { } ) ;
128
+ const task = buildTask ( { } ) ;
129
129
130
130
expect ( task . source . type ) . toEqual ( "UNKNOWN" ) ;
131
131
} ) ;
132
132
133
133
it ( "skips missing source" , ( ) => {
134
- const task = mergeTaskParts ( { } , { source : { type : "PAGE" } } ) ;
134
+ const task = buildTask ( { } , { source : { type : "PAGE" } } ) ;
135
135
136
136
expect ( task . source . type ) . toEqual ( "PAGE" ) ;
137
137
} ) ;
138
138
139
139
it ( "skips default source" , ( ) => {
140
- const task = mergeTaskParts ( { source : { type : "UNKNOWN" } } , { source : { type : "PAGE" } } ) ;
140
+ const task = buildTask ( { source : { type : "UNKNOWN" } } , { source : { type : "PAGE" } } ) ;
141
141
142
142
expect ( task . source . type ) . toEqual ( "PAGE" ) ;
143
143
} ) ;
144
144
145
145
it ( "keeps non-default source" , ( ) => {
146
- const task = mergeTaskParts ( { source : { type : "PAGE" } } , { source : { type : "UNKNOWN" } } ) ;
146
+ const task = buildTask ( { source : { type : "PAGE" } } , { source : { type : "UNKNOWN" } } ) ;
147
147
148
148
expect ( task . source . type ) . toEqual ( "PAGE" ) ;
149
149
} ) ;
0 commit comments