github.com/resonatecoop/id@v1.1.0-43/oauth/email_token_test.go (about)

     1  package oauth_test
     2  
     3  import (
     4  	"context"
     5  	"errors"
     6  
     7  	"github.com/google/uuid"
     8  	"github.com/resonatecoop/user-api/model"
     9  	"github.com/stretchr/testify/assert"
    10  )
    11  
    12  var (
    13  	// ErrEmailValidAPIKeyNotProvided ...
    14  	ErrEmailValidAPIKeyNotProvided = errors.New("you must provide a valid api-key before calling Send()")
    15  )
    16  
    17  func (suite *OauthTestSuite) TestPasswordReset() {
    18  	var (
    19  		err error
    20  	)
    21  
    22  	_, err = suite.service.SendEmailToken(model.NewOauthEmail(
    23  		"test@user.com",
    24  		"Reset your password",
    25  		"password-reset",
    26  	), "https://id.resonate.localhost/password-reset")
    27  
    28  	assert.Equal(suite.T(), ErrEmailValidAPIKeyNotProvided, err)
    29  
    30  	//assert.Equal(suite.T(), true, (err == nil || err == ErrEmailValidAPIKeyNotProvided))
    31  }
    32  
    33  func (suite *OauthTestSuite) TestCreateToken() {
    34  	ctx := context.Background()
    35  
    36  	newEmail := &model.Email{
    37  		Subject:   "Greatly over exaggerated",
    38  		Recipient: "joan@waters.com",
    39  		Template:  "Dear Madam, about your claim in the newspaper:",
    40  	}
    41  
    42  	emailToken, err := suite.service.CreateEmailToken(newEmail.Recipient)
    43  
    44  	// No error
    45  	assert.Nil(suite.T(), err)
    46  
    47  	// Reference is not nil
    48  	assert.NotEqual(suite.T(), emailToken.Reference.String(), uuid.Nil.String())
    49  
    50  	myNewEmailToken := new(model.EmailToken)
    51  
    52  	err = suite.db.NewSelect().
    53  		Model(myNewEmailToken).
    54  		Where("id = ?", emailToken.ID).
    55  		Scan(ctx)
    56  
    57  	// No error
    58  	assert.Nil(suite.T(), err)
    59  
    60  	assert.Equal(suite.T(), myNewEmailToken.ID.String(), emailToken.ID.String())
    61  
    62  }