@@ -42,11 +42,12 @@ func setupQueueStoreTest(t *testing.T) (*sql.DB, sqlmock.Sqlmock, storage.QueueS
4242
4343func TestQueueStore_Create (t * testing.T ) {
4444 queue := entity.Queue {
45- Name : "monorepo/main" ,
46- LastGreenURI : "git://remote/monorepo/main/green" ,
47- InFlightCount : 0 ,
48- LatestRequestID : "request/monorepo/main/1" ,
49- Version : 1 ,
45+ Name : "monorepo/main" ,
46+ LastGreenURI : "git://remote/monorepo/main/green" ,
47+ LastGreenRequestID : "request/monorepo/main/1" ,
48+ InFlightCount : 0 ,
49+ LatestRequestID : "request/monorepo/main/1" ,
50+ Version : 1 ,
5051 }
5152
5253 tests := []struct {
@@ -59,15 +60,15 @@ func TestQueueStore_Create(t *testing.T) {
5960 name : "success" ,
6061 setup : func (mock sqlmock.Sqlmock ) {
6162 mock .ExpectExec ("INSERT INTO queue" ).
62- WithArgs (queue .Name , queue .LastGreenURI , queue .InFlightCount , queue .LatestRequestID , queue .Version ).
63+ WithArgs (queue .Name , queue .LastGreenURI , queue .InFlightCount , queue .LatestRequestID , queue .Version , queue . LastGreenRequestID ).
6364 WillReturnResult (sqlmock .NewResult (0 , 1 ))
6465 },
6566 },
6667 {
6768 name : "duplicate name returns ErrAlreadyExists" ,
6869 setup : func (mock sqlmock.Sqlmock ) {
6970 mock .ExpectExec ("INSERT INTO queue" ).
70- WithArgs (queue .Name , queue .LastGreenURI , queue .InFlightCount , queue .LatestRequestID , queue .Version ).
71+ WithArgs (queue .Name , queue .LastGreenURI , queue .InFlightCount , queue .LatestRequestID , queue .Version , queue . LastGreenRequestID ).
7172 WillReturnError (& mysql.MySQLError {Number : mysqlErrDuplicateEntry })
7273 },
7374 wantErr : true ,
@@ -77,7 +78,7 @@ func TestQueueStore_Create(t *testing.T) {
7778 name : "other exec error" ,
7879 setup : func (mock sqlmock.Sqlmock ) {
7980 mock .ExpectExec ("INSERT INTO queue" ).
80- WithArgs (queue .Name , queue .LastGreenURI , queue .InFlightCount , queue .LatestRequestID , queue .Version ).
81+ WithArgs (queue .Name , queue .LastGreenURI , queue .InFlightCount , queue .LatestRequestID , queue .Version , queue . LastGreenRequestID ).
8182 WillReturnError (fmt .Errorf ("connection reset" ))
8283 },
8384 wantErr : true ,
@@ -107,11 +108,12 @@ func TestQueueStore_Create(t *testing.T) {
107108
108109func TestQueueStore_Get (t * testing.T ) {
109110 want := entity.Queue {
110- Name : "monorepo/main" ,
111- LastGreenURI : "git://remote/monorepo/main/green" ,
112- InFlightCount : 2 ,
113- LatestRequestID : "request/monorepo/main/3" ,
114- Version : 3 ,
111+ Name : "monorepo/main" ,
112+ LastGreenURI : "git://remote/monorepo/main/green" ,
113+ LastGreenRequestID : "request/monorepo/main/2" ,
114+ InFlightCount : 2 ,
115+ LatestRequestID : "request/monorepo/main/3" ,
116+ Version : 3 ,
115117 }
116118
117119 tests := []struct {
@@ -126,9 +128,9 @@ func TestQueueStore_Get(t *testing.T) {
126128 name : "found" ,
127129 queueName : want .Name ,
128130 setup : func (mock sqlmock.Sqlmock ) {
129- rows := sqlmock .NewRows ([]string {"name" , "last_green_uri" , "in_flight_count" , "latest_request_id" , "version" }).
130- AddRow (want .Name , want .LastGreenURI , want .InFlightCount , want .LatestRequestID , want .Version )
131- mock .ExpectQuery ("SELECT name, last_green_uri, in_flight_count, latest_request_id, version FROM queue" ).
131+ rows := sqlmock .NewRows ([]string {"name" , "last_green_uri" , "in_flight_count" , "latest_request_id" , "version" , "last_green_request_id" }).
132+ AddRow (want .Name , want .LastGreenURI , want .InFlightCount , want .LatestRequestID , want .Version , want . LastGreenRequestID )
133+ mock .ExpectQuery ("SELECT name, last_green_uri, in_flight_count, latest_request_id, version, last_green_request_id FROM queue" ).
132134 WithArgs (want .Name ).
133135 WillReturnRows (rows )
134136 },
@@ -138,7 +140,7 @@ func TestQueueStore_Get(t *testing.T) {
138140 name : "not found" ,
139141 queueName : want .Name ,
140142 setup : func (mock sqlmock.Sqlmock ) {
141- mock .ExpectQuery ("SELECT name, last_green_uri, in_flight_count, latest_request_id, version FROM queue" ).
143+ mock .ExpectQuery ("SELECT name, last_green_uri, in_flight_count, latest_request_id, version, last_green_request_id FROM queue" ).
142144 WithArgs (want .Name ).
143145 WillReturnError (sql .ErrNoRows )
144146 },
@@ -149,7 +151,7 @@ func TestQueueStore_Get(t *testing.T) {
149151 name : "query error" ,
150152 queueName : want .Name ,
151153 setup : func (mock sqlmock.Sqlmock ) {
152- mock .ExpectQuery ("SELECT name, last_green_uri, in_flight_count, latest_request_id, version FROM queue" ).
154+ mock .ExpectQuery ("SELECT name, last_green_uri, in_flight_count, latest_request_id, version, last_green_request_id FROM queue" ).
153155 WithArgs (want .Name ).
154156 WillReturnError (fmt .Errorf ("connection reset" ))
155157 },
@@ -181,10 +183,11 @@ func TestQueueStore_Get(t *testing.T) {
181183
182184func TestQueueStore_Update (t * testing.T ) {
183185 queue := entity.Queue {
184- Name : "monorepo/main" ,
185- LastGreenURI : "git://remote/monorepo/main/green" ,
186- InFlightCount : 1 ,
187- LatestRequestID : "request/monorepo/main/2" ,
186+ Name : "monorepo/main" ,
187+ LastGreenURI : "git://remote/monorepo/main/green" ,
188+ LastGreenRequestID : "request/monorepo/main/1" ,
189+ InFlightCount : 1 ,
190+ LatestRequestID : "request/monorepo/main/2" ,
188191 }
189192 const oldVersion , newVersion = int32 (1 ), int32 (2 )
190193
@@ -198,15 +201,15 @@ func TestQueueStore_Update(t *testing.T) {
198201 name : "success" ,
199202 setup : func (mock sqlmock.Sqlmock ) {
200203 mock .ExpectExec ("UPDATE queue" ).
201- WithArgs (queue .LastGreenURI , queue .InFlightCount , queue .LatestRequestID , newVersion , queue .Name , oldVersion ).
204+ WithArgs (queue .LastGreenURI , queue .InFlightCount , queue .LatestRequestID , newVersion , queue .LastGreenRequestID , queue . Name , oldVersion ).
202205 WillReturnResult (sqlmock .NewResult (0 , 1 ))
203206 },
204207 },
205208 {
206209 name : "version mismatch" ,
207210 setup : func (mock sqlmock.Sqlmock ) {
208211 mock .ExpectExec ("UPDATE queue" ).
209- WithArgs (queue .LastGreenURI , queue .InFlightCount , queue .LatestRequestID , newVersion , queue .Name , oldVersion ).
212+ WithArgs (queue .LastGreenURI , queue .InFlightCount , queue .LatestRequestID , newVersion , queue .LastGreenRequestID , queue . Name , oldVersion ).
210213 WillReturnResult (sqlmock .NewResult (0 , 0 ))
211214 },
212215 wantErr : true ,
@@ -216,7 +219,7 @@ func TestQueueStore_Update(t *testing.T) {
216219 name : "exec error" ,
217220 setup : func (mock sqlmock.Sqlmock ) {
218221 mock .ExpectExec ("UPDATE queue" ).
219- WithArgs (queue .LastGreenURI , queue .InFlightCount , queue .LatestRequestID , newVersion , queue .Name , oldVersion ).
222+ WithArgs (queue .LastGreenURI , queue .InFlightCount , queue .LatestRequestID , newVersion , queue .LastGreenRequestID , queue . Name , oldVersion ).
220223 WillReturnError (fmt .Errorf ("connection reset" ))
221224 },
222225 wantErr : true ,
@@ -225,7 +228,7 @@ func TestQueueStore_Update(t *testing.T) {
225228 name : "rows affected error" ,
226229 setup : func (mock sqlmock.Sqlmock ) {
227230 mock .ExpectExec ("UPDATE queue" ).
228- WithArgs (queue .LastGreenURI , queue .InFlightCount , queue .LatestRequestID , newVersion , queue .Name , oldVersion ).
231+ WithArgs (queue .LastGreenURI , queue .InFlightCount , queue .LatestRequestID , newVersion , queue .LastGreenRequestID , queue . Name , oldVersion ).
229232 WillReturnResult (sqlmock .NewErrorResult (fmt .Errorf ("driver error" )))
230233 },
231234 wantErr : true ,
0 commit comments