github.com/web-platform-tests/wpt.fyi@v0.0.0-20240530210107-70cf978996f1/shared/appengine_test.go (about)

     1  // +build small
     2  
     3  // Copyright 2020 The WPT Dashboard Project. All rights reserved.
     4  // Use of this source code is governed by a BSD-style license that can be
     5  // found in the LICENSE file.
     6  
     7  package shared
     8  
     9  import (
    10  	"net/url"
    11  	"testing"
    12  
    13  	"github.com/stretchr/testify/assert"
    14  	taskspb "google.golang.org/genproto/googleapis/cloud/tasks/v2"
    15  )
    16  
    17  func TestCreateTaskRequest(t *testing.T) {
    18  	runtimeIdentityBak := runtimeIdentity
    19  	defer func() { runtimeIdentity = runtimeIdentityBak }()
    20  	runtimeIdentity.AppID = "localtest"
    21  
    22  	t.Run("us-central", func(t *testing.T) {
    23  		runtimeIdentity.LocationID = "us-central"
    24  		params := make(url.Values)
    25  		params.Set("foo", "bar")
    26  		taskPrefix, req := createTaskRequest("queue", "task", "/api/endpoint", params)
    27  
    28  		expectedReq := &taskspb.CreateTaskRequest{
    29  			Parent: "projects/localtest/locations/us-central1/queues/queue",
    30  			Task: &taskspb.Task{
    31  				Name: "projects/localtest/locations/us-central1/queues/queue/tasks/task",
    32  				MessageType: &taskspb.Task_AppEngineHttpRequest{
    33  					AppEngineHttpRequest: &taskspb.AppEngineHttpRequest{
    34  						HttpMethod:  taskspb.HttpMethod_POST,
    35  						RelativeUri: "/api/endpoint",
    36  						Headers:     map[string]string{"Content-Type": "application/x-www-form-urlencoded"},
    37  						Body:        []byte("foo=bar"),
    38  					},
    39  				},
    40  			},
    41  		}
    42  		assert.Equal(t, "projects/localtest/locations/us-central1/queues/queue/tasks/", taskPrefix)
    43  		assert.Equal(t, expectedReq, req)
    44  	})
    45  
    46  	t.Run("other-location", func(t *testing.T) {
    47  		runtimeIdentity.LocationID = "other-location"
    48  		taskPrefix, req := createTaskRequest("queue", "task", "/api/endpoint", nil)
    49  
    50  		expectedReq := &taskspb.CreateTaskRequest{
    51  			Parent: "projects/localtest/locations/other-location/queues/queue",
    52  			Task: &taskspb.Task{
    53  				Name: "projects/localtest/locations/other-location/queues/queue/tasks/task",
    54  				MessageType: &taskspb.Task_AppEngineHttpRequest{
    55  					AppEngineHttpRequest: &taskspb.AppEngineHttpRequest{
    56  						HttpMethod:  taskspb.HttpMethod_POST,
    57  						RelativeUri: "/api/endpoint",
    58  						Headers:     map[string]string{"Content-Type": "application/x-www-form-urlencoded"},
    59  						Body:        []byte(""),
    60  					},
    61  				},
    62  			},
    63  		}
    64  		assert.Equal(t, "projects/localtest/locations/other-location/queues/queue/tasks/", taskPrefix)
    65  		assert.Equal(t, expectedReq, req)
    66  	})
    67  
    68  	t.Run("no task name", func(t *testing.T) {
    69  		runtimeIdentity.LocationID = "other-location"
    70  		taskPrefix, req := createTaskRequest("queue", "", "/api/endpoint", nil)
    71  
    72  		expectedReq := &taskspb.CreateTaskRequest{
    73  			Parent: "projects/localtest/locations/other-location/queues/queue",
    74  			Task: &taskspb.Task{
    75  				Name: "",
    76  				MessageType: &taskspb.Task_AppEngineHttpRequest{
    77  					AppEngineHttpRequest: &taskspb.AppEngineHttpRequest{
    78  						HttpMethod:  taskspb.HttpMethod_POST,
    79  						RelativeUri: "/api/endpoint",
    80  						Headers:     map[string]string{"Content-Type": "application/x-www-form-urlencoded"},
    81  						Body:        []byte(""),
    82  					},
    83  				},
    84  			},
    85  		}
    86  		assert.Equal(t, "projects/localtest/locations/other-location/queues/queue/tasks/", taskPrefix)
    87  		assert.Equal(t, expectedReq, req)
    88  	})
    89  }