Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
sundowndev
GitHub Repository: sundowndev/phoneinfoga
Path: blob/master/examples/plugin/customscanner_test.go
988 views
1
package main
2
3
import (
4
"github.com/stretchr/testify/assert"
5
"github.com/sundowndev/phoneinfoga/v2/lib/number"
6
"github.com/sundowndev/phoneinfoga/v2/lib/remote"
7
"testing"
8
)
9
10
func TestCustomScanner_Metadata(t *testing.T) {
11
scanner := &customScanner{}
12
assert.Equal(t, "customscanner", scanner.Name())
13
assert.NotEmpty(t, scanner.Description())
14
}
15
16
func TestCustomScanner(t *testing.T) {
17
testcases := []struct {
18
name string
19
number *number.Number
20
expected customScannerResponse
21
wantError string
22
}{
23
{
24
name: "test successful scan",
25
number: func() *number.Number {
26
n, _ := number.NewNumber("15556661212")
27
return n
28
}(),
29
expected: customScannerResponse{
30
Valid: true,
31
Info: "This number is known for scams!",
32
Hidden: "This will not appear in the output",
33
},
34
},
35
}
36
37
for _, tt := range testcases {
38
t.Run(tt.name, func(t *testing.T) {
39
scanner := &customScanner{}
40
41
if scanner.DryRun(*tt.number, remote.ScannerOptions{}) != nil {
42
t.Fatal("DryRun() should return nil")
43
}
44
45
got, err := scanner.Run(*tt.number, remote.ScannerOptions{})
46
if tt.wantError != "" {
47
assert.EqualError(t, err, tt.wantError)
48
} else {
49
assert.NoError(t, err)
50
}
51
assert.Equal(t, tt.expected, got)
52
})
53
}
54
}
55
56