Skip to content

Commit

Permalink
test(api): ovh scan
Browse files Browse the repository at this point in the history
  • Loading branch information
sundowndev committed Mar 28, 2020
1 parent 7dc9785 commit 62cc3ac
Show file tree
Hide file tree
Showing 4 changed files with 48 additions and 12 deletions.
6 changes: 3 additions & 3 deletions api/controllers.go
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ func numverifyScan(c *gin.Context) {
n, err := scanners.LocalScan(number)

if err != nil {
c.JSON(500, errorResponse("The number is not valid"))
c.JSON(400, errorResponse("The number is not valid"))
return
}

Expand All @@ -81,7 +81,7 @@ func googleSearchScan(c *gin.Context) {
n, err := scanners.LocalScan(number)

if err != nil {
c.JSON(500, errorResponse("The number is not valid"))
c.JSON(400, errorResponse("The number is not valid"))
return
}

Expand All @@ -99,7 +99,7 @@ func ovhScan(c *gin.Context) {
n, err := scanners.LocalScan(number)

if err != nil {
c.JSON(500, errorResponse("The number is not valid"))
c.JSON(400, errorResponse("The number is not valid"))
return
}

Expand Down
36 changes: 36 additions & 0 deletions api/server_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ import (

"github.com/gin-gonic/gin"
"github.com/stretchr/testify/assert"
"github.com/sundowndev/phoneinfoga/pkg/scanners"
gock "gopkg.in/h2non/gock.v1"
)

func performRequest(r http.Handler, method, path string) (*httptest.ResponseRecorder, error) {
Expand Down Expand Up @@ -87,6 +89,40 @@ func TestApi(t *testing.T) {
})
})

t.Run("ovhScan - /api/numbers/:number/scan/ovh", func(t *testing.T) {
t.Run("should find number on OVH", func(t *testing.T) {
defer gock.Off() // Flush pending mocks after test execution

gock.New("https://api.ovh.com").
Get("/1.0/telephony/number/detailedZones").
MatchParam("country", "fr").
Reply(200).
JSON([]scanners.OVHAPIResponseNumber{
{
ZneList: []string{},
MatchingCriteria: "",
Prefix: 33,
InternationalNumber: "003336517xxxx",
Country: "fr",
ZipCode: "",
Number: "036517xxxx",
City: "Abbeville",
AskedCity: "",
},
})

res, err := performRequest(r, "GET", "/api/numbers/330365179268/scan/ovh")

body, _ := ioutil.ReadAll(res.Body)

assert.Equal(err, nil, "should be equal")
assert.Equal(res.Result().StatusCode, 200, "should be equal")
assert.Equal(string(body), `{"success":true,"error":"","result":{"found":true,"numberRange":"036517xxxx","city":"Abbeville","zipCode":""}}`, "should be equal")

assert.Equal(gock.IsDone(), true, "there should have no pending mocks")
})
})

// t.Run("healthHandler - /api/", func(t *testing.T) {
// res, err := performRequest(r, "GET", "/api")

Expand Down
14 changes: 7 additions & 7 deletions pkg/scanners/ovh.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,11 @@ import (
"strings"
)

type ovhAPIResponseNumber struct {
MatchingCriteria interface{} `json:"matchingCriteria"`
City string `json:"city"`
ZneList []string `json:"zneList"`
// type string
// OVHAPIResponseNumber is a type that describes an OVH number range
type OVHAPIResponseNumber struct {
MatchingCriteria interface{} `json:"matchingCriteria"`
City string `json:"city"`
ZneList []string `json:"zneList"`
InternationalNumber string `json:"internationalNumber"`
Country string `json:"country"`
AskedCity interface{} `json:"askedCity"`
Expand Down Expand Up @@ -42,12 +42,12 @@ func OVHScan(number *Number) (res *OVHScannerResponse, err error) {
defer response.Body.Close()

// Fill the response with the data from the JSON
var results []ovhAPIResponseNumber
var results []OVHAPIResponseNumber

// Use json.Decode for reading streams of JSON data
json.NewDecoder(response.Body).Decode(&results)

var foundNumber ovhAPIResponseNumber
var foundNumber OVHAPIResponseNumber

rt := reflect.TypeOf(results)
if rt.Kind() == reflect.Slice && len(number.RawLocal) > 6 {
Expand Down
4 changes: 2 additions & 2 deletions pkg/scanners/ovh_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ func TestOVHScanner(t *testing.T) {
Get("/1.0/telephony/number/detailedZones").
MatchParam("country", "fr").
Reply(200).
JSON([]ovhAPIResponseNumber{
JSON([]OVHAPIResponseNumber{
{
ZneList: []string{},
MatchingCriteria: "",
Expand Down Expand Up @@ -53,7 +53,7 @@ func TestOVHScanner(t *testing.T) {
Get("/1.0/telephony/number/detailedZones").
MatchParam("country", "us").
Reply(200).
JSON([]ovhAPIResponseNumber{
JSON([]OVHAPIResponseNumber{
{
ZneList: []string{},
MatchingCriteria: "",
Expand Down

0 comments on commit 62cc3ac

Please sign in to comment.