add branch v1
This commit is contained in:
parent
5d370e1077
commit
01b8951dd5
53 changed files with 1079 additions and 6481 deletions
111
otp_api_test.go
Normal file
111
otp_api_test.go
Normal file
|
@ -0,0 +1,111 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"net/http"
|
||||
"net/http/httptest"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestSaveHandler(t *testing.T) {
|
||||
// 创建测试服务器
|
||||
srv := httptest.NewServer(http.HandlerFunc(SaveHandler))
|
||||
defer srv.Close()
|
||||
|
||||
// 准备测试数据
|
||||
testData := SaveRequest{
|
||||
UserID: "test_user_123",
|
||||
Tokens: []TokenData{
|
||||
{
|
||||
Issuer: "TestOrg",
|
||||
Account: "user@test.com",
|
||||
Secret: "JBSWY3DPEHPK3PXP",
|
||||
Type: "totp",
|
||||
Period: 30,
|
||||
Digits: 6,
|
||||
Algo: "SHA1",
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
// 序列化请求体
|
||||
body, _ := json.Marshal(testData)
|
||||
|
||||
// 发送请求
|
||||
resp, err := http.Post(srv.URL, "application/json", bytes.NewBuffer(body))
|
||||
if err != nil {
|
||||
t.Fatalf("Error making request to server: %v\n", err)
|
||||
}
|
||||
defer resp.Body.Close()
|
||||
|
||||
// 检查响应状态码
|
||||
if resp.StatusCode != http.StatusOK {
|
||||
t.Errorf("Expected status: %d, got: %d\n", http.StatusOK, resp.StatusCode)
|
||||
}
|
||||
|
||||
// 解析响应
|
||||
var saveResp SaveResponse
|
||||
err = json.NewDecoder(resp.Body).Decode(&saveResp)
|
||||
if err != nil {
|
||||
t.Errorf("Error decoding response: %v\n", err)
|
||||
}
|
||||
|
||||
// 验证响应数据
|
||||
if !saveResp.Success {
|
||||
t.Errorf("Expected success to be true, got false\n")
|
||||
}
|
||||
if saveResp.Message != "Tokens saved successfully" {
|
||||
t.Errorf("Expected message to be 'Tokens saved successfully', got '%s'\n", saveResp.Message)
|
||||
}
|
||||
}
|
||||
|
||||
func TestRecoverHandler(t *testing.T) {
|
||||
// 创建测试服务器
|
||||
srv := httptest.NewServer(http.HandlerFunc(RecoverHandler))
|
||||
defer srv.Close()
|
||||
|
||||
// 发送请求(没有user_id参数)
|
||||
resp, err := http.Get(srv.URL)
|
||||
if err != nil {
|
||||
t.Fatalf("Error making request to server: %v\n", err)
|
||||
}
|
||||
defer resp.Body.Close()
|
||||
|
||||
// 检查响应状态码(应该返回错误)
|
||||
if resp.StatusCode != http.StatusBadRequest {
|
||||
t.Errorf("Expected status: %d, got: %d\n", http.StatusBadRequest, resp.StatusCode)
|
||||
}
|
||||
|
||||
// 发送带user_id的请求
|
||||
urlWithID := fmt.Sprintf("%s?user_id=test_user_123", srv.URL)
|
||||
respWithID, err := http.Get(urlWithID)
|
||||
if err != nil {
|
||||
t.Fatalf("Error making request to server: %v\n", err)
|
||||
}
|
||||
defer respWithID.Body.Close()
|
||||
|
||||
// 检查响应状态码
|
||||
if respWithID.StatusCode != http.StatusOK {
|
||||
t.Errorf("Expected status: %d, got: %d\n", http.StatusOK, respWithID.StatusCode)
|
||||
}
|
||||
|
||||
// 解析响应
|
||||
var recoverResp RecoverResponse
|
||||
err = json.NewDecoder(respWithID.Body).Decode(&recoverResp)
|
||||
if err != nil {
|
||||
t.Errorf("Error decoding response: %v\n", err)
|
||||
}
|
||||
|
||||
// 验证响应数据
|
||||
if !recoverResp.Success {
|
||||
t.Errorf("Expected success to be true, got false\n")
|
||||
}
|
||||
if recoverResp.Message != "Tokens recovered successfully" {
|
||||
t.Errorf("Expected message to be 'Tokens recovered successfully', got '%s'\n", recoverResp.Message)
|
||||
}
|
||||
if len(recoverResp.Tokens) != 1 {
|
||||
t.Errorf("Expected 1 token, got %d\n", len(recoverResp.Tokens))
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue