Skip to content

Commit

Permalink
Merge pull request stakwork#1829 from saithsab877/UT-For-GetFeatureBy…
Browse files Browse the repository at this point in the history
…Uuid

Write Test For `GetFeatureByUuid`
  • Loading branch information
elraphty authored Jul 3, 2024
2 parents 67fc346 + a745fa2 commit e510e0b
Show file tree
Hide file tree
Showing 2 changed files with 81 additions and 4 deletions.
77 changes: 77 additions & 0 deletions handlers/features_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -279,7 +279,84 @@ func TestGetWorkspaceFeaturesCount(t *testing.T) {
}

func TestGetFeatureByUuid(t *testing.T) {
teardownSuite := SetupSuite(t)
defer teardownSuite(t)

fHandler := NewFeatureHandler(db.TestDB)

person := db.Person{
Uuid: uuid.New().String(),
OwnerAlias: "test-alias",
UniqueName: "test-unique-name",
OwnerPubKey: "test-pubkey",
PriceToMeet: 0,
Description: "test-description",
}
db.TestDB.CreateOrEditPerson(person)

workspace := db.Workspace{
Uuid: uuid.New().String(),
Name: "test-workspace" + uuid.New().String(),
OwnerPubKey: person.OwnerPubKey,
Github: "https://github.com/test",
Website: "https://www.testwebsite.com",
Description: "test-description",
}
db.TestDB.CreateOrEditWorkspace(workspace)
workspace = db.TestDB.GetWorkspaceByUuid(workspace.Uuid)

feature := db.WorkspaceFeatures{
Uuid: uuid.New().String(),
WorkspaceUuid: workspace.Uuid,
Name: "test-feature",
Url: "https://github.com/test-feature",
Priority: 0,
}
db.TestDB.CreateOrEditFeature(feature)
feature = db.TestDB.GetFeatureByUuid(feature.Uuid)

t.Run("should return error if not authorized", func(t *testing.T) {
featureUUID := feature.Uuid
rr := httptest.NewRecorder()
handler := http.HandlerFunc(fHandler.GetFeatureByUuid)

rctx := chi.NewRouteContext()
rctx.URLParams.Add("uuid", featureUUID)
req, err := http.NewRequestWithContext(context.WithValue(context.Background(), chi.RouteCtxKey, rctx), http.MethodGet, "/features/"+featureUUID, nil)
if err != nil {
t.Fatal(err)
}

handler.ServeHTTP(rr, req)

assert.Equal(t, http.StatusUnauthorized, rr.Code)
})

t.Run("should return feature if user is authorized", func(t *testing.T) {
featureUUID := feature.Uuid

rr := httptest.NewRecorder()
handler := http.HandlerFunc(fHandler.GetFeatureByUuid)

rctx := chi.NewRouteContext()
rctx.URLParams.Add("uuid", featureUUID)
ctx := context.WithValue(context.Background(), auth.ContextKey, person.OwnerPubKey)
req, err := http.NewRequestWithContext(context.WithValue(ctx, chi.RouteCtxKey, rctx), http.MethodGet, "/features/"+featureUUID, nil)
if err != nil {
t.Fatal(err)
}

handler.ServeHTTP(rr, req)

assert.Equal(t, http.StatusOK, rr.Code)

var returnedFeature db.WorkspaceFeatures
err = json.Unmarshal(rr.Body.Bytes(), &returnedFeature)
assert.NoError(t, err)
assert.Equal(t, feature.Name, returnedFeature.Name)
assert.Equal(t, feature.Url, returnedFeature.Url)
assert.Equal(t, feature.Priority, returnedFeature.Priority)
})
}

func TestCreateOrEditFeaturePhase(t *testing.T) {
Expand Down
8 changes: 4 additions & 4 deletions handlers/people_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import (
"bytes"
"context"
"encoding/json"
"math/rand"
"net/http"
"net/http/httptest"
"strconv"
Expand Down Expand Up @@ -421,7 +422,7 @@ func TestGetListedPeople(t *testing.T) {
db.CleanDB()

person := db.Person{
ID: 101,
ID: uint(rand.Intn(1000)),
Uuid: "person_101_uuid",
OwnerAlias: "person101",
UniqueName: "person101",
Expand All @@ -434,7 +435,7 @@ func TestGetListedPeople(t *testing.T) {
Extras: db.PropertyMap{"coding_languages": "Typescript"},
}
person2 := db.Person{
ID: 102,
ID: uint(rand.Intn(1000)),
Uuid: "person_102_uuid",
OwnerAlias: "person102",
UniqueName: "person102",
Expand All @@ -447,7 +448,7 @@ func TestGetListedPeople(t *testing.T) {
Extras: db.PropertyMap{"coding_languages": "Golang"},
}
person3 := db.Person{
ID: 103,
ID: uint(rand.Intn(1000)),
Uuid: "person_103_uuid",
OwnerAlias: "person103",
UniqueName: "person103",
Expand Down Expand Up @@ -541,7 +542,6 @@ func TestGetListedPeople(t *testing.T) {
})

}

func TestGetPersonByUuid(t *testing.T) {
teardownSuite := SetupSuite(t)
defer teardownSuite(t)
Expand Down

0 comments on commit e510e0b

Please sign in to comment.