github.com/go-email-validator/go-email-validator@v0.0.0-20230409163946-b8b9e6a0552e/pkg/presentation/as-email-verifier/cmd/dep_test_generator/gen.go (about)

     1  package main
     2  
     3  import (
     4  	"encoding/json"
     5  	emailverifier "github.com/AfterShip/email-verifier"
     6  	"github.com/emirpasic/gods/sets/hashset"
     7  	"github.com/go-email-validator/go-email-validator/pkg/presentation/converter"
     8  	"github.com/go-email-validator/go-email-validator/pkg/presentation/test"
     9  	"log"
    10  	"os"
    11  )
    12  
    13  // TODO DRY for gen fixtures
    14  func main() {
    15  	var err error
    16  	emails := converter.EmailsForTests()
    17  	deps := make([]interface{}, len(emails))
    18  
    19  	verifier := emailverifier.NewVerifier().
    20  		EnableGravatarCheck().
    21  		EnableSMTPCheck()
    22  	// .EnableDomainSuggest()
    23  
    24  	incorrectGravatar := hashset.New(
    25  		"amazedfuckporno@gmail.com",
    26  		"theofanis.giot2is@12pm.gr",
    27  		"asdasd@tradepro.net",
    28  		"credit@mail.ru",
    29  		"admin@gmail.com",
    30  		"asdasd@tradepro.net",
    31  	)
    32  
    33  	for i, email := range emails {
    34  		verifyResult, _ := verifier.Verify(email)
    35  
    36  		if incorrectGravatar.Contains(email) && verifyResult.Gravatar != nil {
    37  			verifyResult.Gravatar.HasGravatar = false
    38  			verifyResult.Gravatar.GravatarUrl = ""
    39  		}
    40  
    41  		deps[i] = verifyResult
    42  	}
    43  
    44  	f, err := os.Create(test.DefaultDepFixtureFile)
    45  	die(err)
    46  	defer f.Close()
    47  
    48  	bytes, err := json.MarshalIndent(deps, "", "  ")
    49  	die(err)
    50  	_, err = f.Write(bytes)
    51  	die(err)
    52  }
    53  
    54  func die(err error) {
    55  	if err != nil {
    56  		log.Fatal(err)
    57  	}
    58  }