github.com/nhannv/mattermost-server@v5.11.1+incompatible/store/storetest/command_webhook_store.go (about)

     1  // Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved.
     2  // See License.txt for license information.
     3  
     4  package storetest
     5  
     6  import (
     7  	"testing"
     8  
     9  	"net/http"
    10  
    11  	"github.com/mattermost/mattermost-server/model"
    12  	"github.com/mattermost/mattermost-server/store"
    13  )
    14  
    15  func TestCommandWebhookStore(t *testing.T, ss store.Store) {
    16  	t.Run("", func(t *testing.T) { testCommandWebhookStore(t, ss) })
    17  }
    18  
    19  func testCommandWebhookStore(t *testing.T, ss store.Store) {
    20  	cws := ss.CommandWebhook()
    21  
    22  	h1 := &model.CommandWebhook{}
    23  	h1.CommandId = model.NewId()
    24  	h1.UserId = model.NewId()
    25  	h1.ChannelId = model.NewId()
    26  	h1 = (<-cws.Save(h1)).Data.(*model.CommandWebhook)
    27  
    28  	if r1 := <-cws.Get(h1.Id); r1.Err != nil {
    29  		t.Fatal(r1.Err)
    30  	} else {
    31  		if *r1.Data.(*model.CommandWebhook) != *h1 {
    32  			t.Fatal("invalid returned webhook")
    33  		}
    34  	}
    35  
    36  	if err := (<-cws.Get("123")).Err; err.StatusCode != http.StatusNotFound {
    37  		t.Fatal("Should have set the status as not found for missing id")
    38  	}
    39  
    40  	h2 := &model.CommandWebhook{}
    41  	h2.CreateAt = model.GetMillis() - 2*model.COMMAND_WEBHOOK_LIFETIME
    42  	h2.CommandId = model.NewId()
    43  	h2.UserId = model.NewId()
    44  	h2.ChannelId = model.NewId()
    45  	h2 = (<-cws.Save(h2)).Data.(*model.CommandWebhook)
    46  
    47  	if err := (<-cws.Get(h2.Id)).Err; err == nil || err.StatusCode != http.StatusNotFound {
    48  		t.Fatal("Should have set the status as not found for expired webhook")
    49  	}
    50  
    51  	cws.Cleanup()
    52  
    53  	if err := (<-cws.Get(h1.Id)).Err; err != nil {
    54  		t.Fatal("Should have no error getting unexpired webhook")
    55  	}
    56  
    57  	if err := (<-cws.Get(h2.Id)).Err; err.StatusCode != http.StatusNotFound {
    58  		t.Fatal("Should have set the status as not found for expired webhook")
    59  	}
    60  
    61  	if err := (<-cws.TryUse(h1.Id, 1)).Err; err != nil {
    62  		t.Fatal("Should be able to use webhook once")
    63  	}
    64  
    65  	if err := (<-cws.TryUse(h1.Id, 1)).Err; err == nil || err.StatusCode != http.StatusBadRequest {
    66  		t.Fatal("Should be able to use webhook once")
    67  	}
    68  }