@@ -47,3 +47,93 @@ func TestFindUsageInRange(t *testing.T) {
47
47
require .Equal (t , 1 , len (listResult ))
48
48
require .Equal (t , []db.Usage {entryInside }, listResult )
49
49
}
50
+
51
+ func TestInsertUsageRecords (t * testing.T ) {
52
+ conn := dbtest .ConnectForTests (t )
53
+
54
+ attributionID := db .NewTeamAttributionID (uuid .New ().String ())
55
+ start := time .Date (2022 , 7 , 1 , 0 , 0 , 0 , 0 , time .UTC )
56
+
57
+ usage := dbtest .NewUsage (t , db.Usage {
58
+ AttributionID : attributionID ,
59
+ EffectiveTime : db .NewVarcharTime (start .Add (2 * time .Hour )),
60
+ Draft : true ,
61
+ })
62
+
63
+ dbtest .CreateUsageRecords (t , conn , usage )
64
+ updatedDesc := "Updated Description"
65
+ usage .Description = updatedDesc
66
+
67
+ require .NoError (t , db .InsertUsage (context .Background (), conn , usage ))
68
+
69
+ drafts , err := db .FindAllDraftUsage (context .Background (), conn )
70
+ require .NoError (t , err )
71
+ require .Equal (t , 1 , len (drafts ))
72
+ require .NotEqual (t , updatedDesc , drafts [0 ].Description )
73
+ }
74
+
75
+ func TestUpdateUsageRecords (t * testing.T ) {
76
+ conn := dbtest .ConnectForTests (t )
77
+
78
+ attributionID := db .NewTeamAttributionID (uuid .New ().String ())
79
+ start := time .Date (2022 , 7 , 1 , 0 , 0 , 0 , 0 , time .UTC )
80
+
81
+ usage := dbtest .NewUsage (t , db.Usage {
82
+ AttributionID : attributionID ,
83
+ EffectiveTime : db .NewVarcharTime (start .Add (2 * time .Hour )),
84
+ Draft : true ,
85
+ })
86
+
87
+ dbtest .CreateUsageRecords (t , conn , usage )
88
+ updatedDesc := "Updated Description"
89
+ usage .Description = updatedDesc
90
+
91
+ require .NoError (t , db .UpdateUsage (context .Background (), conn , usage ))
92
+
93
+ drafts , err := db .FindAllDraftUsage (context .Background (), conn )
94
+ require .NoError (t , err )
95
+ require .Equal (t , 1 , len (drafts ))
96
+ require .Equal (t , updatedDesc , drafts [0 ].Description )
97
+ }
98
+
99
+ func TestFindAllDraftUsage (t * testing.T ) {
100
+ conn := dbtest .ConnectForTests (t )
101
+
102
+ attributionID := db .NewTeamAttributionID (uuid .New ().String ())
103
+ start := time .Date (2022 , 7 , 1 , 0 , 0 , 0 , 0 , time .UTC )
104
+
105
+ usage1 := dbtest .NewUsage (t , db.Usage {
106
+ AttributionID : attributionID ,
107
+ EffectiveTime : db .NewVarcharTime (start .Add (2 * time .Hour )),
108
+ Draft : true ,
109
+ })
110
+ usage2 := dbtest .NewUsage (t , db.Usage {
111
+ AttributionID : attributionID ,
112
+ EffectiveTime : db .NewVarcharTime (start .Add (2 * time .Hour )),
113
+ Draft : true ,
114
+ })
115
+ usage3 := dbtest .NewUsage (t , db.Usage {
116
+ AttributionID : attributionID ,
117
+ EffectiveTime : db .NewVarcharTime (start .Add (2 * time .Hour )),
118
+ Draft : false ,
119
+ })
120
+
121
+ dbtest .CreateUsageRecords (t , conn , usage1 , usage2 , usage3 )
122
+ drafts , err := db .FindAllDraftUsage (context .Background (), conn )
123
+ require .NoError (t , err )
124
+ require .Equal (t , 2 , len (drafts ))
125
+ for _ , usage := range drafts {
126
+ require .True (t , usage .Draft )
127
+ }
128
+
129
+ // let's finalize one record
130
+ usage2 .Draft = false
131
+ require .NoError (t , db .UpdateUsage (context .Background (), conn , usage2 ))
132
+
133
+ drafts , err = db .FindAllDraftUsage (context .Background (), conn )
134
+ require .NoError (t , err )
135
+ require .Equal (t , 1 , len (drafts ))
136
+ for _ , usage := range drafts {
137
+ require .True (t , usage .Draft )
138
+ }
139
+ }
0 commit comments