adding header to test method

This commit is contained in:
Roland Osborne 2022-02-05 21:12:35 -08:00
parent 6117d56f24
commit df16364616
3 changed files with 42 additions and 51 deletions

View File

@ -61,6 +61,7 @@ func SendEndpointTest(
tokenType string, tokenType string,
token string, token string,
response interface{}, response interface{},
responseHeader *map[string][]string,
) (err error) { ) (err error) {
var r *http.Request var r *http.Request
@ -83,6 +84,9 @@ func SendEndpointTest(
err = errors.New("response failed"); err = errors.New("response failed");
return return
} }
if responseHeader != nil {
*responseHeader = resp.Header
}
if response == nil { if response == nil {
return return
} }

View File

@ -23,6 +23,7 @@ func TestAddArticle(t *testing.T) {
var labelRevision int64 var labelRevision int64
var labels *[]Label var labels *[]Label
var view int64 var view int64
var header map[string][]string
// setup testing group // setup testing group
set, err = AddTestGroup("addarticle") set, err = AddTestGroup("addarticle")
@ -34,46 +35,39 @@ func TestAddArticle(t *testing.T) {
// create article // create article
articleAccess = &ArticleAccess{ Groups: []string{set.A.B.GroupId} } articleAccess = &ArticleAccess{ Groups: []string{set.A.B.GroupId} }
article = &Article{} article = &Article{}
assert.NoError(t, SendEndpointTest(AddArticle, "POST", "/content/articles", nil, articleAccess, APP_TOKENAPP, set.A.Token, article)) assert.NoError(t, SendEndpointTest(AddArticle, "POST", "/content/articles", nil, articleAccess, APP_TOKENAPP, set.A.Token, article, nil))
article = &Article{} article = &Article{}
assert.NoError(t, SendEndpointTest(AddArticle, "POST", "/content/articles", nil, articleAccess, APP_TOKENAPP, set.A.Token, article)) assert.NoError(t, SendEndpointTest(AddArticle, "POST", "/content/articles", nil, articleAccess, APP_TOKENAPP, set.A.Token, article, nil))
assert.NoError(t, SendEndpointTest(RemoveArticle, "DELETE", "/content/articls/" + article.ArticleId, &map[string]string{"articleId": article.ArticleId }, nil, APP_TOKENAPP, set.A.Token, nil)) assert.NoError(t, SendEndpointTest(RemoveArticle, "DELETE", "/content/articls/" + article.ArticleId, &map[string]string{"articleId": article.ArticleId }, nil, APP_TOKENAPP, set.A.Token, nil, nil))
ver = GetTestRevision(set.B.Revisions) ver = GetTestRevision(set.B.Revisions)
assert.NoError(t, SendEndpointTest(GetCards, "GET", "/contact/cards?cardRevision=" + strconv.FormatInt(rev.Card, 10), nil, nil, APP_TOKENAPP, set.B.Token, &cards)) assert.NoError(t, SendEndpointTest(GetCards, "GET", "/contact/cards?cardRevision=" + strconv.FormatInt(rev.Card, 10), nil, nil, APP_TOKENAPP, set.B.Token, &cards, nil))
assert.NotEqual(t, ver.Card, rev.Card) assert.NotEqual(t, ver.Card, rev.Card)
assert.Equal(t, 1, len(cards)) assert.Equal(t, 1, len(cards))
rev = ver rev = ver
articles = &[]Article{} articles = &[]Article{}
assert.NoError(t, SendEndpointTest(GetArticles, "GET", "/content/articles", nil, nil, APP_TOKENAPP, set.A.Token, articles)) assert.NoError(t, SendEndpointTest(GetArticles, "GET", "/content/articles", nil, nil, APP_TOKENAPP, set.A.Token, articles, nil))
assert.Equal(t, 2, len(*articles)) assert.Equal(t, 2, len(*articles))
assert.True(t, (*articles)[0].ArticleData != nil || (*articles)[1].ArticleData != nil) assert.True(t, (*articles)[0].ArticleData != nil || (*articles)[1].ArticleData != nil)
assert.True(t, (*articles)[0].ArticleData == nil || (*articles)[1].ArticleData == nil) assert.True(t, (*articles)[0].ArticleData == nil || (*articles)[1].ArticleData == nil)
articles = &[]Article{} articles = &[]Article{}
assert.NoError(t, SendEndpointTest(GetArticles, "GET", "/content/articles", nil, nil, APP_TOKENCONTACT, set.B.A.Token, articles)) assert.NoError(t, SendEndpointTest(GetArticles, "GET", "/content/articles", nil, nil, APP_TOKENCONTACT, set.B.A.Token, articles, &header))
assert.Equal(t, 1, len(*articles)) assert.Equal(t, 1, len(*articles))
assert.True(t, (*articles)[0].ArticleData != nil) assert.True(t, (*articles)[0].ArticleData != nil)
view, err = strconv.ParseInt(header["View-Revision"][0], 10, 64)
articles = &[]Article{}
assert.NoError(t, SendEndpointTest(GetArticles, "GET", "/content/articles", nil, nil, APP_TOKENCONTACT, set.C.A.Token, articles))
assert.Equal(t, 0, len(*articles))
r, w, ret := NewRequest("GET", "/content/articles", nil)
assert.NoError(t, ret)
r.Header.Add("TokenType", APP_TOKENCONTACT)
SetBearerAuth(r, set.B.A.Token)
GetArticles(w, r)
resp := w.Result()
view, err = strconv.ParseInt(resp.Header["View-Revision"][0], 10, 64)
assert.NoError(t, err) assert.NoError(t, err)
assert.Equal(t, view, cards[0].CardData.NotifiedView) assert.Equal(t, view, cards[0].CardData.NotifiedView)
articles = &[]Article{} articles = &[]Article{}
assert.NoError(t, SendEndpointTest(GetArticles, "GET", "/content/articles?contentRevision=0&viewRevision=" + strconv.FormatInt(cards[0].CardData.NotifiedView, 10), nil, nil, APP_TOKENCONTACT, set.B.A.Token, articles)) assert.NoError(t, SendEndpointTest(GetArticles, "GET", "/content/articles", nil, nil, APP_TOKENCONTACT, set.C.A.Token, articles, nil))
assert.Equal(t, 0, len(*articles))
articles = &[]Article{}
assert.NoError(t, SendEndpointTest(GetArticles, "GET", "/content/articles?contentRevision=0&viewRevision=" + strconv.FormatInt(cards[0].CardData.NotifiedView, 10), nil, nil, APP_TOKENCONTACT, set.B.A.Token, articles, nil))
assert.Equal(t, 2, len(*articles)) assert.Equal(t, 2, len(*articles))
ver = GetTestRevision(set.C.Revisions) ver = GetTestRevision(set.C.Revisions)
@ -81,11 +75,11 @@ func TestAddArticle(t *testing.T) {
// add another article // add another article
article = &Article{} article = &Article{}
articleAccess = &ArticleAccess{} articleAccess = &ArticleAccess{}
assert.NoError(t, SendEndpointTest(AddArticle, "POST", "/content/articles", nil, articleAccess, APP_TOKENAPP, set.A.Token, article)) assert.NoError(t, SendEndpointTest(AddArticle, "POST", "/content/articles", nil, articleAccess, APP_TOKENAPP, set.A.Token, article, nil))
// capture updated card on new article // capture updated card on new article
rev = GetTestRevision(set.C.Revisions) rev = GetTestRevision(set.C.Revisions)
assert.NoError(t, SendEndpointTest(GetCards, "GET", "/contact/cards?cardRevision=" + strconv.FormatInt(ver.Card, 10), nil, nil, APP_TOKENAPP, set.C.Token, &cards)) assert.NoError(t, SendEndpointTest(GetCards, "GET", "/contact/cards?cardRevision=" + strconv.FormatInt(ver.Card, 10), nil, nil, APP_TOKENAPP, set.C.Token, &cards, nil))
assert.Equal(t, 1, len(cards)) assert.Equal(t, 1, len(cards))
viewRevision = cards[0].CardData.NotifiedView viewRevision = cards[0].CardData.NotifiedView
contentRevision = cards[0].CardData.NotifiedContent contentRevision = cards[0].CardData.NotifiedContent
@ -95,17 +89,17 @@ func TestAddArticle(t *testing.T) {
// create new label // create new label
label = &Label{} label = &Label{}
subject = &Subject{ DataType: "labeltype", Data: "labeldata" } subject = &Subject{ DataType: "labeltype", Data: "labeldata" }
assert.NoError(t, SendEndpointTest(AddLabel, "POST", "/content/labels", nil, subject, APP_TOKENAPP, set.A.Token, label)) assert.NoError(t, SendEndpointTest(AddLabel, "POST", "/content/labels", nil, subject, APP_TOKENAPP, set.A.Token, label, nil))
vars = &map[string]string{ vars = &map[string]string{
"labelId": label.LabelId, "labelId": label.LabelId,
"groupId": set.A.C.GroupId, "groupId": set.A.C.GroupId,
} }
label = &Label{} label = &Label{}
assert.NoError(t, SendEndpointTest(SetLabelGroup, "POST", "/content/labels/{labelId}/groups/{groupId}", vars, nil, APP_TOKENAPP, set.A.Token, label)) assert.NoError(t, SendEndpointTest(SetLabelGroup, "POST", "/content/labels/{labelId}/groups/{groupId}", vars, nil, APP_TOKENAPP, set.A.Token, label, nil))
// capture updated card on new assigned label // capture updated card on new assigned label
rev = GetTestRevision(set.C.Revisions) rev = GetTestRevision(set.C.Revisions)
assert.NoError(t, SendEndpointTest(GetCards, "GET", "/contact/cards?cardRevision=" + strconv.FormatInt(ver.Card, 10), nil, nil, APP_TOKENAPP, set.C.Token, &cards)) assert.NoError(t, SendEndpointTest(GetCards, "GET", "/contact/cards?cardRevision=" + strconv.FormatInt(ver.Card, 10), nil, nil, APP_TOKENAPP, set.C.Token, &cards, nil))
assert.Equal(t, 1, len(cards)) assert.Equal(t, 1, len(cards))
assert.NotEqual(t, viewRevision, cards[0].CardData.NotifiedView) assert.NotEqual(t, viewRevision, cards[0].CardData.NotifiedView)
assert.NotEqual(t, labelRevision, cards[0].CardData.NotifiedLabel) assert.NotEqual(t, labelRevision, cards[0].CardData.NotifiedLabel)
@ -120,18 +114,18 @@ func TestAddArticle(t *testing.T) {
"articleId": article.ArticleId, "articleId": article.ArticleId,
} }
article = &Article{} article = &Article{}
assert.NoError(t, SendEndpointTest(SetArticleLabel, "POST", "/content/articles/{articleId}/labels/{labelId}", vars, nil, APP_TOKENAPP, set.A.Token, article)) assert.NoError(t, SendEndpointTest(SetArticleLabel, "POST", "/content/articles/{articleId}/labels/{labelId}", vars, nil, APP_TOKENAPP, set.A.Token, article, nil))
// capture updated card on assigned article // capture updated card on assigned article
rev = GetTestRevision(set.C.Revisions) rev = GetTestRevision(set.C.Revisions)
assert.NoError(t, SendEndpointTest(GetCards, "GET", "/contact/cards?cardRevision=" + strconv.FormatInt(ver.Card, 10), nil, nil, APP_TOKENAPP, set.C.Token, &cards)) assert.NoError(t, SendEndpointTest(GetCards, "GET", "/contact/cards?cardRevision=" + strconv.FormatInt(ver.Card, 10), nil, nil, APP_TOKENAPP, set.C.Token, &cards, nil))
assert.Equal(t, 1, len(cards)) assert.Equal(t, 1, len(cards))
assert.NotEqual(t, contentRevision, cards[0].CardData.NotifiedContent) assert.NotEqual(t, contentRevision, cards[0].CardData.NotifiedContent)
ver = rev ver = rev
// confirm c can see new article // confirm c can see new article
articles = &[]Article{} articles = &[]Article{}
assert.NoError(t, SendEndpointTest(GetArticles, "GET", "/content/articles", nil, nil, APP_TOKENCONTACT, set.C.A.Token, articles)) assert.NoError(t, SendEndpointTest(GetArticles, "GET", "/content/articles", nil, nil, APP_TOKENCONTACT, set.C.A.Token, articles, nil))
assert.Equal(t, 1, len(*articles)) assert.Equal(t, 1, len(*articles))
assert.Equal(t, (*articles)[0].ArticleId, article.ArticleId) assert.Equal(t, (*articles)[0].ArticleId, article.ArticleId)
assert.Equal(t, 1, len((*articles)[0].ArticleData.Labels)) assert.Equal(t, 1, len((*articles)[0].ArticleData.Labels))
@ -139,40 +133,33 @@ func TestAddArticle(t *testing.T) {
// confirm b cannot see new article // confirm b cannot see new article
articles = &[]Article{} articles = &[]Article{}
assert.NoError(t, SendEndpointTest(GetArticles, "GET", "/content/articles", nil, nil, APP_TOKENCONTACT, set.B.A.Token, articles)) assert.NoError(t, SendEndpointTest(GetArticles, "GET", "/content/articles", nil, nil, APP_TOKENCONTACT, set.B.A.Token, articles, nil))
assert.Equal(t, 1, len(*articles)) assert.Equal(t, 1, len(*articles))
assert.NotEqual(t, article.ArticleId, (*articles)[0].ArticleId) assert.NotEqual(t, article.ArticleId, (*articles)[0].ArticleId)
labels = &[]Label{} labels = &[]Label{}
assert.NoError(t, SendEndpointTest(GetLabels, "GET", "/content/labels", nil, nil, APP_TOKENAPP, set.A.Token, labels)) assert.NoError(t, SendEndpointTest(GetLabels, "GET", "/content/labels", nil, nil, APP_TOKENAPP, set.A.Token, labels, nil))
assert.Equal(t, 1, len(*labels)) assert.Equal(t, 1, len(*labels))
labels = &[]Label{} labels = &[]Label{}
assert.NoError(t, SendEndpointTest(GetLabels, "GET", "/content/labels", nil, nil, APP_TOKENCONTACT, set.B.A.Token, labels)) assert.NoError(t, SendEndpointTest(GetLabels, "GET", "/content/labels", nil, nil, APP_TOKENCONTACT, set.B.A.Token, labels, nil))
assert.Equal(t, 0, len(*labels)) assert.Equal(t, 0, len(*labels))
labels = &[]Label{} labels = &[]Label{}
assert.NoError(t, SendEndpointTest(GetLabels, "GET", "/content/labels", nil, nil, APP_TOKENCONTACT, set.C.A.Token, labels)) assert.NoError(t, SendEndpointTest(GetLabels, "GET", "/content/labels", nil, nil, APP_TOKENCONTACT, set.C.A.Token, labels, &header))
assert.Equal(t, 1, len(*labels)) assert.Equal(t, 1, len(*labels))
view, err = strconv.ParseInt(header["View-Revision"][0], 10, 64)
r, w, ret = NewRequest("GET", "/content/labels", nil)
assert.NoError(t, ret)
r.Header.Add("TokenType", APP_TOKENCONTACT)
SetBearerAuth(r, set.C.A.Token)
GetLabels(w, r)
resp = w.Result()
view, err = strconv.ParseInt(resp.Header["View-Revision"][0], 10, 64)
assert.NoError(t, err) assert.NoError(t, err)
assert.Equal(t, cards[0].CardData.NotifiedView, view) assert.Equal(t, cards[0].CardData.NotifiedView, view)
vars = &map[string]string{ "labelId": label.LabelId, } vars = &map[string]string{ "labelId": label.LabelId, }
assert.NoError(t, SendEndpointTest(RemoveLabel, "DELETE", "/content/labels/{labelId}", vars, nil, APP_TOKENAPP, set.A.Token, nil)) assert.NoError(t, SendEndpointTest(RemoveLabel, "DELETE", "/content/labels/{labelId}", vars, nil, APP_TOKENAPP, set.A.Token, nil, nil))
labels = &[]Label{} labels = &[]Label{}
assert.NoError(t, SendEndpointTest(GetLabels, "GET", "/content/labels", nil, nil, APP_TOKENCONTACT, set.C.A.Token, labels)) assert.NoError(t, SendEndpointTest(GetLabels, "GET", "/content/labels", nil, nil, APP_TOKENCONTACT, set.C.A.Token, labels, nil))
assert.Equal(t, 0, len(*labels)) assert.Equal(t, 0, len(*labels))
articles = &[]Article{} articles = &[]Article{}
assert.NoError(t, SendEndpointTest(GetArticles, "GET", "/content/articles", nil, nil, APP_TOKENCONTACT, set.C.A.Token, articles)) assert.NoError(t, SendEndpointTest(GetArticles, "GET", "/content/articles", nil, nil, APP_TOKENCONTACT, set.C.A.Token, articles, nil))
assert.Equal(t, 0, len(*articles)) assert.Equal(t, 0, len(*articles))
} }

View File

@ -28,7 +28,7 @@ func TestUpdateContact(t *testing.T) {
rev = GetTestRevision(set.B.Revisions) rev = GetTestRevision(set.B.Revisions)
assert.NoError(t, SendEndpointTest(GetCards, "PUT", "/contact/cards", nil, nil, APP_TOKENAPP, set.B.Token, &cards)) assert.NoError(t, SendEndpointTest(GetCards, "PUT", "/contact/cards", nil, nil, APP_TOKENAPP, set.B.Token, &cards, nil))
// update B profile // update B profile
profileData := ProfileData{ profileData := ProfileData{
@ -36,26 +36,26 @@ func TestUpdateContact(t *testing.T) {
Location: "San Francisco", Location: "San Francisco",
Description: "databaggerr", Description: "databaggerr",
}; };
assert.NoError(t, SendEndpointTest(SetProfile, "PUT", "/profile/data", nil, &profileData, APP_TOKENAPP, set.A.Token, nil)) assert.NoError(t, SendEndpointTest(SetProfile, "PUT", "/profile/data", nil, &profileData, APP_TOKENAPP, set.A.Token, nil, nil))
r = GetTestRevision(set.B.Revisions) r = GetTestRevision(set.B.Revisions)
assert.NotEqual(t, rev.Card, r.Card) assert.NotEqual(t, rev.Card, r.Card)
assert.NoError(t, SendEndpointTest(GetCards, "GET", "/contact/cards?cardRevision=" + strconv.FormatInt(rev.Card, 10), nil, nil, APP_TOKENAPP, set.B.Token, &cards)) assert.NoError(t, SendEndpointTest(GetCards, "GET", "/contact/cards?cardRevision=" + strconv.FormatInt(rev.Card, 10), nil, nil, APP_TOKENAPP, set.B.Token, &cards, nil))
assert.Equal(t, 1, len(cards)) assert.Equal(t, 1, len(cards))
assert.Equal(t, set.A.Guid, cards[0].CardData.Guid) assert.Equal(t, set.A.Guid, cards[0].CardData.Guid)
profile = cards[0].CardData.ProfileRevision profile = cards[0].CardData.ProfileRevision
rev = r rev = r
cardProfile = &CardProfile{} cardProfile = &CardProfile{}
assert.NoError(t, SendEndpointTest(GetProfileMessage, "GET", "/profile/message", nil, nil, APP_TOKENCONTACT, set.B.A.Token, &msg)) assert.NoError(t, SendEndpointTest(GetProfileMessage, "GET", "/profile/message", nil, nil, APP_TOKENCONTACT, set.B.A.Token, &msg, nil))
assert.NoError(t, SendEndpointTest(SetCardProfile, "PUT", "/contact/cards/{cardId}/profile", &map[string]string{"cardId":cards[0].CardId}, msg, APP_TOKENAPP, set.B.Token, cardProfile)) assert.NoError(t, SendEndpointTest(SetCardProfile, "PUT", "/contact/cards/{cardId}/profile", &map[string]string{"cardId":cards[0].CardId}, msg, APP_TOKENAPP, set.B.Token, cardProfile, nil))
assert.Equal(t, "Namer", cardProfile.Name) assert.Equal(t, "Namer", cardProfile.Name)
r = GetTestRevision(set.B.Revisions) r = GetTestRevision(set.B.Revisions)
assert.NotEqual(t, rev.Card, r.Card) assert.NotEqual(t, rev.Card, r.Card)
assert.NoError(t, SendEndpointTest(GetCards, "GET", "/contact/cards?cardRevision=" + strconv.FormatInt(rev.Card, 10), nil, nil, APP_TOKENAPP, set.B.Token, &cards)) assert.NoError(t, SendEndpointTest(GetCards, "GET", "/contact/cards?cardRevision=" + strconv.FormatInt(rev.Card, 10), nil, nil, APP_TOKENAPP, set.B.Token, &cards, nil))
assert.Equal(t, 1, len(cards)) assert.Equal(t, 1, len(cards))
assert.Equal(t, set.A.Guid, cards[0].CardData.Guid) assert.Equal(t, set.A.Guid, cards[0].CardData.Guid)
assert.NotEqual(t, profile, cards[0].CardData.ProfileRevision) assert.NotEqual(t, profile, cards[0].CardData.ProfileRevision)
@ -63,19 +63,19 @@ func TestUpdateContact(t *testing.T) {
rev = r rev = r
cardDetail = &CardDetail{} cardDetail = &CardDetail{}
assert.NoError(t, SendEndpointTest(SetCardNotes, "PUT", "/contact/cards/{cardId}/notes", &map[string]string{"cardId":cards[0].CardId}, "some interesting notes", APP_TOKENAPP, set.B.Token, cardDetail)) assert.NoError(t, SendEndpointTest(SetCardNotes, "PUT", "/contact/cards/{cardId}/notes", &map[string]string{"cardId":cards[0].CardId}, "some interesting notes", APP_TOKENAPP, set.B.Token, cardDetail, nil))
assert.Equal(t, "some interesting notes", cardDetail.Notes) assert.Equal(t, "some interesting notes", cardDetail.Notes)
r = GetTestRevision(set.B.Revisions) r = GetTestRevision(set.B.Revisions)
assert.NotEqual(t, rev.Card, r.Card) assert.NotEqual(t, rev.Card, r.Card)
rev = r rev = r
cardDetail = &CardDetail{} cardDetail = &CardDetail{}
assert.NoError(t, SendEndpointTest(ClearCardNotes, "DELETE", "/contact/cards/{cardId}/notes", &map[string]string{"cardId":cards[0].CardId}, nil, APP_TOKENAPP, set.B.Token, cardDetail)) assert.NoError(t, SendEndpointTest(ClearCardNotes, "DELETE", "/contact/cards/{cardId}/notes", &map[string]string{"cardId":cards[0].CardId}, nil, APP_TOKENAPP, set.B.Token, cardDetail, nil))
assert.Equal(t, "", cardDetail.Notes) assert.Equal(t, "", cardDetail.Notes)
r = GetTestRevision(set.B.Revisions) r = GetTestRevision(set.B.Revisions)
assert.NotEqual(t, rev.Card, r.Card) assert.NotEqual(t, rev.Card, r.Card)
assert.NoError(t, SendEndpointTest(GetCards, "GET", "/contact/cards?cardRevision=" + strconv.FormatInt(rev.Card, 10), nil, nil, APP_TOKENAPP, set.B.Token, &cards)) assert.NoError(t, SendEndpointTest(GetCards, "GET", "/contact/cards?cardRevision=" + strconv.FormatInt(rev.Card, 10), nil, nil, APP_TOKENAPP, set.B.Token, &cards, nil))
assert.Equal(t, 1, len(cards)) assert.Equal(t, 1, len(cards))
assert.Equal(t, set.A.Guid, cards[0].CardData.Guid) assert.Equal(t, set.A.Guid, cards[0].CardData.Guid)
assert.NotEqual(t, detail, cards[0].CardData.DetailRevision) assert.NotEqual(t, detail, cards[0].CardData.DetailRevision)