forked from urdt/ussd
Compare commits
24 Commits
menu-trave
...
menu-trave
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c21a48c78e
|
||
|
|
70e234aa7c
|
||
|
|
554cecc7f3
|
||
|
|
d9e922d5be
|
||
|
|
0837933b6c
|
||
|
|
4d5735f85f
|
||
|
|
85efd2ac6e
|
||
|
|
8791753b2a
|
||
|
|
c8a5391435
|
||
|
|
c6227acba1
|
||
|
|
e30a7ad3e3
|
||
|
|
96aec1fd67
|
||
|
|
810dd74e43
|
||
|
|
3afe35b44f
|
||
|
|
d01af48216
|
||
|
|
d7bfdc62e9
|
||
|
|
360b51a3dc
|
||
|
|
e1f3ab78f1
|
||
|
|
5de82fd08a
|
||
|
|
2220d286b7
|
||
|
|
c39c4acc86
|
||
|
|
5937e7ea9d
|
||
|
|
35acf75f6b
|
||
|
|
8313ca3509
|
@@ -15,9 +15,9 @@ import (
|
||||
"git.defalsify.org/vise.git/engine"
|
||||
"git.defalsify.org/vise.git/logging"
|
||||
"git.defalsify.org/vise.git/resource"
|
||||
"git.grassecon.net/urdt/ussd/internal/handlers/server"
|
||||
|
||||
"git.grassecon.net/urdt/ussd/internal/handlers"
|
||||
"git.grassecon.net/urdt/ussd/internal/handlers/server"
|
||||
httpserver "git.grassecon.net/urdt/ussd/internal/http"
|
||||
"git.grassecon.net/urdt/ussd/internal/storage"
|
||||
)
|
||||
|
||||
@@ -14,8 +14,8 @@ import (
|
||||
"git.defalsify.org/vise.git/resource"
|
||||
|
||||
"git.grassecon.net/urdt/ussd/internal/handlers"
|
||||
"git.grassecon.net/urdt/ussd/internal/handlers/server"
|
||||
"git.grassecon.net/urdt/ussd/internal/storage"
|
||||
"git.grassecon.net/urdt/ussd/internal/handlers/server"
|
||||
)
|
||||
|
||||
var (
|
||||
@@ -95,7 +95,6 @@ func main() {
|
||||
|
||||
lhs, err := handlers.NewLocalHandlerService(pfp, true, dbResource, cfg, rs)
|
||||
lhs.SetDataStore(&userdataStore)
|
||||
|
||||
accountService := server.AccountService{}
|
||||
|
||||
hl, err := lhs.GetHandler(&accountService)
|
||||
|
||||
@@ -16,9 +16,9 @@ import (
|
||||
"git.defalsify.org/vise.git/resource"
|
||||
|
||||
"git.grassecon.net/urdt/ussd/internal/handlers"
|
||||
"git.grassecon.net/urdt/ussd/internal/handlers/server"
|
||||
httpserver "git.grassecon.net/urdt/ussd/internal/http"
|
||||
"git.grassecon.net/urdt/ussd/internal/storage"
|
||||
"git.grassecon.net/urdt/ussd/internal/handlers/server"
|
||||
)
|
||||
|
||||
var (
|
||||
@@ -90,6 +90,7 @@ func main() {
|
||||
}
|
||||
|
||||
accountService := server.AccountService{}
|
||||
|
||||
hl, err := lhs.GetHandler(&accountService)
|
||||
if err != nil {
|
||||
fmt.Fprintf(os.Stderr, err.Error())
|
||||
|
||||
@@ -13,13 +13,12 @@ type Step struct {
|
||||
}
|
||||
|
||||
func (s *Step) MatchesExpectedContent(content []byte) (bool, error) {
|
||||
pattern := `.*\?.*|.*`
|
||||
pattern := regexp.QuoteMeta(s.ExpectedContent)
|
||||
re, err := regexp.Compile(pattern)
|
||||
if err != nil {
|
||||
return false, err
|
||||
}
|
||||
// Check if the content matches the regex pattern
|
||||
if re.Match(content) {
|
||||
if re.Match([]byte(content)) {
|
||||
return true, nil
|
||||
}
|
||||
return false, nil
|
||||
@@ -38,7 +37,8 @@ type TestCase struct {
|
||||
}
|
||||
|
||||
func (s *TestCase) MatchesExpectedContent(content []byte) (bool, error) {
|
||||
re, err := regexp.Compile(s.ExpectedContent)
|
||||
pattern := regexp.QuoteMeta(s.ExpectedContent)
|
||||
re, err := regexp.Compile(pattern)
|
||||
if err != nil {
|
||||
return false, err
|
||||
}
|
||||
@@ -6,8 +6,8 @@ import (
|
||||
"git.defalsify.org/vise.git/engine"
|
||||
"git.defalsify.org/vise.git/persist"
|
||||
"git.defalsify.org/vise.git/resource"
|
||||
"git.grassecon.net/urdt/ussd/internal/handlers/server"
|
||||
"git.grassecon.net/urdt/ussd/internal/handlers/ussd"
|
||||
"git.grassecon.net/urdt/ussd/internal/handlers/server"
|
||||
)
|
||||
|
||||
type HandlerService interface {
|
||||
@@ -54,7 +54,7 @@ func (ls *LocalHandlerService) SetDataStore(db *db.Db) {
|
||||
}
|
||||
|
||||
func (ls *LocalHandlerService) GetHandler(accountService server.AccountServiceInterface) (*ussd.Handlers, error) {
|
||||
ussdHandlers, err := ussd.NewHandlers(ls.Parser, *ls.UserdataStore, accountService)
|
||||
ussdHandlers, err := ussd.NewHandlers(ls.Parser, *ls.UserdataStore,accountService)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@@ -18,7 +18,7 @@ type AccountServiceInterface interface {
|
||||
type AccountService struct {
|
||||
}
|
||||
|
||||
type MockAccountService struct {
|
||||
type TestAccountService struct {
|
||||
}
|
||||
|
||||
// CheckAccountStatus retrieves the status of an account transaction based on the provided tracking ID.
|
||||
@@ -49,9 +49,7 @@ func (as *AccountService) CheckAccountStatus(trackingId string) (string, error)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
status := trackResp.Result.Transaction.Status
|
||||
|
||||
return status, nil
|
||||
}
|
||||
|
||||
@@ -108,7 +106,7 @@ func (as *AccountService) CreateAccount() (*models.AccountResponse, error) {
|
||||
return &accountResp, nil
|
||||
}
|
||||
|
||||
func (mas *MockAccountService) CreateAccount() (*models.AccountResponse, error) {
|
||||
func (tas *TestAccountService) CreateAccount() (*models.AccountResponse, error) {
|
||||
return &models.AccountResponse{
|
||||
Ok: true,
|
||||
Result: struct {
|
||||
@@ -123,7 +121,7 @@ func (mas *MockAccountService) CreateAccount() (*models.AccountResponse, error)
|
||||
}, nil
|
||||
}
|
||||
|
||||
func (mas *MockAccountService) CheckBalance(publicKey string) (string, error) {
|
||||
func (tas *TestAccountService) CheckBalance(publicKey string) (string, error) {
|
||||
|
||||
balanceResponse := &models.BalanceResponse{
|
||||
Ok: true,
|
||||
@@ -139,6 +137,6 @@ func (mas *MockAccountService) CheckBalance(publicKey string) (string, error) {
|
||||
return balanceResponse.Result.Balance, nil
|
||||
}
|
||||
|
||||
func (mas *MockAccountService) CheckAccountStatus(trackingId string) (string, error) {
|
||||
func (tas *TestAccountService) CheckAccountStatus(trackingId string) (string, error) {
|
||||
return "SUCCESS", nil
|
||||
}
|
||||
|
||||
@@ -502,7 +502,7 @@ func (h *Handlers) Authorize(ctx context.Context, sym string, input []byte) (res
|
||||
if err != nil {
|
||||
return res, err
|
||||
}
|
||||
if len(input) > 1 {
|
||||
if len(input) == 4 {
|
||||
if bytes.Equal(input, AccountPin) {
|
||||
if h.st.MatchFlag(flag_account_authorized, false) {
|
||||
res.FlagReset = append(res.FlagReset, flag_incorrect_pin)
|
||||
|
||||
@@ -836,10 +836,7 @@ func TestAuthorize(t *testing.T) {
|
||||
{
|
||||
name: "Test with pin that is not a 4 digit",
|
||||
input: []byte("1235aqds"),
|
||||
expectedResult: resource.Result{
|
||||
FlagReset: []uint32{flag_account_authorized},
|
||||
FlagSet: []uint32{flag_incorrect_pin},
|
||||
},
|
||||
expectedResult: resource.Result{},
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
@@ -79,8 +79,12 @@ func TestEngine(sessionId string) (engine.Engine, func(), chan bool) {
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
if AccountService == nil {
|
||||
AccountService = &server.AccountService{}
|
||||
}
|
||||
|
||||
switch AccountService.(type) {
|
||||
case *server.MockAccountService:
|
||||
case *server.TestAccountService:
|
||||
go func() {
|
||||
eventChannel <- false
|
||||
}()
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
//go:build !online
|
||||
// +build !online
|
||||
|
||||
package testutil
|
||||
@@ -6,8 +7,6 @@ import (
|
||||
"git.grassecon.net/urdt/ussd/internal/handlers/server"
|
||||
)
|
||||
|
||||
var AccountService server.AccountServiceInterface
|
||||
|
||||
func init() {
|
||||
AccountService = &server.MockAccountService{}
|
||||
}
|
||||
var (
|
||||
AccountService server.AccountServiceInterface = &server.TestAccountService{}
|
||||
)
|
||||
|
||||
@@ -5,8 +5,6 @@ package testutil
|
||||
|
||||
import "git.grassecon.net/urdt/ussd/internal/handlers/server"
|
||||
|
||||
var AccountService server.AccountServiceInterface
|
||||
|
||||
func init() {
|
||||
AccountService = &server.AccountService{}
|
||||
}
|
||||
var (
|
||||
AccountService server.AccountServiceInterface
|
||||
)
|
||||
|
||||
@@ -2,4 +2,5 @@ CATCH invalid_pin flag_valid_pin 0
|
||||
MOUT back 0
|
||||
HALT
|
||||
INCMP _ 0
|
||||
INCMP pin_reset_success *
|
||||
INCMP pin_reset_success *
|
||||
|
||||
|
||||
@@ -1 +1 @@
|
||||
Thibitisha PIN yako mpya:
|
||||
Thibitisha PIN yako mpya:
|
||||
|
||||
@@ -18,4 +18,4 @@ INCMP select_gender 3
|
||||
INCMP enter_yob 4
|
||||
INCMP enter_location 5
|
||||
INCMP enter_offerings 6
|
||||
INCMP view_profile 7
|
||||
INCMP view_profile 7
|
||||
|
||||
@@ -1 +1 @@
|
||||
Weka jina la familia
|
||||
Weka jina la familia
|
||||
|
||||
@@ -7,3 +7,6 @@ HALT
|
||||
RELOAD save_firstname
|
||||
INCMP _ 0
|
||||
INCMP pin_entry *
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,2 +1 @@
|
||||
PIN mpya na udhibitisho wa PIN mpya hazilingani. Tafadhali jaribu tena.
|
||||
Kwa usaidizi piga simu +254757628885.
|
||||
PIN mpya na udhibitisho wa pin mpya hazilingani.Tafadhali jaribu tena.Kwa usaidizi piga simu +254757628885.
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
My vouchers
|
||||
@@ -1,6 +0,0 @@
|
||||
MOUT select_voucher 1
|
||||
MOUT voucher_details 2
|
||||
MOUT back 0
|
||||
HALT
|
||||
INCMP _ 0
|
||||
INCMP select_voucher 1
|
||||
@@ -8,3 +8,5 @@ LOAD verify_new_pin 8
|
||||
RELOAD verify_new_pin
|
||||
CATCH incorrect_pin flag_incorrect_pin 1
|
||||
INCMP confirm_pin_change *
|
||||
|
||||
|
||||
|
||||
@@ -1 +1 @@
|
||||
Weka PIN mpya ya nne nambari:
|
||||
Weka PIN mpya ya nne nambari:
|
||||
@@ -1 +1 @@
|
||||
Weka PIN yako ya zamani:
|
||||
Weka PIN yako ya zamani:
|
||||
|
||||
@@ -5,3 +5,4 @@ MOUT back 0
|
||||
HALT
|
||||
INCMP _ 0
|
||||
INCMP old_pin 1
|
||||
|
||||
|
||||
@@ -1 +1 @@
|
||||
The PIN is not a match. Try again
|
||||
The PIN is not a match. Try again
|
||||
|
||||
@@ -1 +1 @@
|
||||
Ombi lako la kubadili PIN limefanikiwa
|
||||
Ombi lako la kubadili PIN limefanikiwa
|
||||
|
||||
@@ -1 +1 @@
|
||||
Ombi la Kuweka wasifu limefanikiwa
|
||||
Ombi la Kuweka wasifu limefanikiwa
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
Select voucher
|
||||
@@ -1 +0,0 @@
|
||||
Voucher details
|
||||
@@ -160,6 +160,7 @@ func TestSendWithInvalidInputs(t *testing.T) {
|
||||
|
||||
// Replace placeholder {public_key} with the actual dynamic public key
|
||||
expectedContent := bytes.Replace([]byte(step.ExpectedContent), []byte("{public_key}"), []byte(publicKey), -1)
|
||||
step.ExpectedContent = string(expectedContent)
|
||||
match, err := step.MatchesExpectedContent(b)
|
||||
if err != nil {
|
||||
t.Fatalf("Error compiling regex for step '%s': %v", step.Input, err)
|
||||
@@ -338,6 +339,7 @@ func TestMyAccount_MyAddress(t *testing.T) {
|
||||
|
||||
publicKey := extractPublicKey(b)
|
||||
expectedContent := bytes.Replace([]byte(step.ExpectedContent), []byte("{public_key}"), []byte(publicKey), -1)
|
||||
step.ExpectedContent = string(expectedContent)
|
||||
match, err := step.MatchesExpectedContent(b)
|
||||
if err != nil {
|
||||
t.Fatalf("Error compiling regex for step '%s': %v", step.Input, err)
|
||||
|
||||
Reference in New Issue
Block a user