Path: blob/master/examples/plugin/customscanner_test.go
988 views
package main12import (3"github.com/stretchr/testify/assert"4"github.com/sundowndev/phoneinfoga/v2/lib/number"5"github.com/sundowndev/phoneinfoga/v2/lib/remote"6"testing"7)89func TestCustomScanner_Metadata(t *testing.T) {10scanner := &customScanner{}11assert.Equal(t, "customscanner", scanner.Name())12assert.NotEmpty(t, scanner.Description())13}1415func TestCustomScanner(t *testing.T) {16testcases := []struct {17name string18number *number.Number19expected customScannerResponse20wantError string21}{22{23name: "test successful scan",24number: func() *number.Number {25n, _ := number.NewNumber("15556661212")26return n27}(),28expected: customScannerResponse{29Valid: true,30Info: "This number is known for scams!",31Hidden: "This will not appear in the output",32},33},34}3536for _, tt := range testcases {37t.Run(tt.name, func(t *testing.T) {38scanner := &customScanner{}3940if scanner.DryRun(*tt.number, remote.ScannerOptions{}) != nil {41t.Fatal("DryRun() should return nil")42}4344got, err := scanner.Run(*tt.number, remote.ScannerOptions{})45if tt.wantError != "" {46assert.EqualError(t, err, tt.wantError)47} else {48assert.NoError(t, err)49}50assert.Equal(t, tt.expected, got)51})52}53}545556