88 "github.com/stretchr/testify/assert"
99 "github.com/stretchr/testify/require"
1010 "github.com/uber-go/tally/v4"
11+ "github.com/uber/submitqueue/entity"
1112 "github.com/uber/submitqueue/entity/queue"
1213 queuemock "github.com/uber/submitqueue/extension/queue/mock"
1314 pb "github.com/uber/submitqueue/gateway/protopb"
@@ -21,6 +22,21 @@ func TestNewCancelController(t *testing.T) {
2122 require .NotNil (t , controller )
2223}
2324
25+ func TestCancel_ReturnsErrorOnEmptySqid (t * testing.T ) {
26+ ctrl := gomock .NewController (t )
27+ controller := NewCancelController (zap .NewNop ().Sugar (), tally .NoopScope , noopPublisher (ctrl ), "cancel" )
28+ ctx := context .Background ()
29+
30+ req := & pb.CancelRequest {Sqid : "" }
31+ resp , err := controller .Cancel (ctx , req )
32+
33+ require .NoError (t , err )
34+ assert .Empty (t , resp .Sqid )
35+ assert .Equal (t , pb .RequestStatus_UNKNOWN , resp .CurrentStatus )
36+ require .NotNil (t , resp .Error )
37+ assert .Equal (t , "sqid is required" , resp .Error .Message )
38+ }
39+
2440func TestCancel_ReturnsSqid (t * testing.T ) {
2541 ctrl := gomock .NewController (t )
2642 controller := NewCancelController (zap .NewNop ().Sugar (), tally .NoopScope , noopPublisher (ctrl ), "cancel" )
@@ -31,6 +47,7 @@ func TestCancel_ReturnsSqid(t *testing.T) {
3147
3248 require .NoError (t , err )
3349 assert .Equal (t , "test-queue/123" , resp .Sqid )
50+ assert .Equal (t , pb .RequestStatus_CANCELLATION_ACCEPTED , resp .CurrentStatus )
3451}
3552
3653func TestCancel_PublishesToQueue (t * testing.T ) {
@@ -55,12 +72,17 @@ func TestCancel_PublishesToQueue(t *testing.T) {
5572
5673 require .NoError (t , err )
5774 assert .Equal (t , "my-queue/42" , resp .Sqid )
75+ assert .Equal (t , pb .RequestStatus_CANCELLATION_ACCEPTED , resp .CurrentStatus )
5876
5977 // Verify message was published to the cancel topic
6078 assert .Equal (t , "cancel" , publishedTopic )
6179 assert .Equal (t , "my-queue/42" , publishedMessage .ID )
6280 assert .Equal (t , "my-queue/42" , publishedMessage .PartitionKey )
63- assert .Equal (t , []byte ("my-queue/42" ), publishedMessage .Payload )
81+
82+ // Verify payload is a serialized Cancel entity
83+ cancel , err := entity .CancelFromBytes (publishedMessage .Payload )
84+ require .NoError (t , err )
85+ assert .Equal (t , "my-queue/42" , cancel .Sqid )
6486}
6587
6688func TestCancel_ReturnsErrorOnPublishFailure (t * testing.T ) {
0 commit comments