amocrm/tests/repository/repository_test.go
2025-02-27 16:30:52 +03:00

758 lines
18 KiB
Go

package test
import (
"context"
"fmt"
"github.com/stretchr/testify/assert"
"gitea.pena/SQuiz/common/dal"
"testing"
)
func Test_Repository(t *testing.T) {
//ctx := context.Background()
//repo, err := dal.NewAmoDal(ctx, "host=localhost port=35432 user=squiz password=Redalert2 dbname=squiz sslmode=disable")
//
//if err != nil {
// fmt.Println("err init postgres")
// panic(err)
//}
//err = webhookCreate(ctx, repo)
//assert.NoError(t, err)
//err = webhookUpdate(ctx, repo)
//assert.NoError(t, err)
//
//count := 0
//for {
// if count == 8 {
// break
// }
// time.Sleep(time.Second)
// tokens, err := checkExpired(ctx, repo)
// assert.NoError(t, err)
// if len(tokens) > 0 {
// fmt.Println(tokens)
// count++
// }
//}
//err = getAllTokens(ctx, t, repo)
//assert.NoError(t, err)
//err = createUser(ctx, repo)
//assert.NoError(t, err)
//err = updateUser(ctx, repo)
//assert.NoError(t, err)
//err = checkUsers(ctx, repo)
//assert.NoError(t, err)
//err = gettingUserFromCash(ctx, t, repo)
//assert.NoError(t, err)
//err = checkPipelines(ctx, repo)
//assert.NoError(t, err)
//err = gettingPipelinesFromCash(ctx, t, repo)
//assert.NoError(t, err)
//err = checkSteps(ctx, repo)
//assert.NoError(t, err)
//err = gettingStepsFromCash(ctx, t, repo)
//assert.NoError(t, err)
//err = checkTags(ctx, repo)
//assert.NoError(t, err)
//err = gettingTagsFromCash(ctx, t, repo)
//assert.NoError(t, err)
//err = checkFields(ctx, repo)
//assert.NoError(t, err)
//err = gettingFieldsFromCash(ctx, t, repo)
//assert.NoError(t, err)
//err = saveUtms(ctx, repo)
//assert.NoError(t, err)
//err = gettingUserUtm(ctx, t, repo)
//assert.NoError(t, err)
//err = deleteUserUTM(ctx, t, repo)
//assert.NoError(t, err)
//RuleTest(ctx, repo)
}
//func createUser(ctx context.Context, repo *dal.AmoDal) error {
// for i := 1; i < 10; i++ {
// accID := strconv.Itoa(i)
// err := repo.AmoRepo.CreateAccount(ctx, accID, model.User{
// AmoID: int32(i),
// Name: "Test" + strconv.Itoa(i),
// Email: "Test" + strconv.Itoa(i) + "@mail.test",
// Amouserid: int32(i),
// Subdomain: "Test",
// Country: "RUSSIA",
// })
// if err != nil {
// return err
// }
// }
// return nil
//}
//
//func updateUser(ctx context.Context, repo *dal.AmoDal) error {
// var testUserInfo models.AmocrmUserInformation
// err := json.Unmarshal([]byte(jsonUserInfo), &testUserInfo)
// if err != nil {
// return err
// }
// for i := 1; i < 10; i++ {
// accID := strconv.Itoa(i)
// info := model.User{
// Name: faker.String(),
// Subdomain: "pena",
// AmoID: 666,
// Amouserid: int32(i),
// Email: faker.Email(),
// Group: int32(i),
// Country: "Russia",
// }
//
// if i%2 == 0 {
// info.Role = int32(i)
// info.ID = faker.Int64()
// }
//
// err = repo.AmoRepo.CreateAccount(ctx, accID, info)
// if err != nil {
// return err
// }
// }
//
// return nil
//}
//
//func checkUsers(ctx context.Context, repo *dal.AmoDal) error {
// var testUserInfo models.AmocrmUserInformation
// err := json.Unmarshal([]byte(jsonUserInfo), &testUserInfo)
// if err != nil {
// return err
// }
// for i := 1; i < 10; i++ {
// if i%2 != 0 {
// info := model.User{
// Name: faker.String(),
// Email: faker.Email(),
// Group: int32(i),
// }
// info.Role = int32(i)
//
// err = repo.AmoRepo.CheckAndUpdateUsers(ctx, info)
// if err != nil {
// return err
// }
// }
// }
// return err
//}
//
//func gettingUserFromCash(ctx context.Context, t *testing.T, repo *dal.AmoDal) error {
// for i := 1; i < 10; i++ {
// req := model.PaginationReq{
// Page: 1,
// Size: int32(i),
// }
//
// resp, err := repo.AmoRepo.GettingUserWithPagination(ctx, &req, "5")
// if err != nil {
// return err
// }
//
// fmt.Println(len(resp.Items))
// }
// return nil
//}
//
//func checkPipelines(ctx context.Context, repo *dal.AmoDal) error {
// var testPipeline1 models.PipelineResponse
// err := json.Unmarshal([]byte(jsonPipelines), &testPipeline1)
// if err != nil {
// return err
// }
//
// var testPipeline2 models.PipelineResponse
// err = json.Unmarshal([]byte(jsonPipelines2), &testPipeline2)
// if err != nil {
// return err
// }
//
// for i := 0; i < 9; i++ {
// err = repo.AmoRepo.CheckPipelines(ctx, tools.ToPipeline(testPipeline1.Embedded.Pipelines))
// if err != nil {
// return err
// }
// }
//
// for i := 0; i < 9; i++ {
// err = repo.AmoRepo.CheckPipelines(ctx, tools.ToPipeline(testPipeline2.Embedded.Pipelines))
// if err != nil {
// return err
// }
// }
//
// return nil
//}
//
//func gettingPipelinesFromCash(ctx context.Context, t *testing.T, repo *dal.AmoDal) error {
// for i := 1; i < 28; i++ {
// req := model.PaginationReq{
// Page: 1,
// Size: int32(i),
// }
//
// resp, err := repo.AmoRepo.GetPipelinesWithPagination(ctx, &req, "4")
// if err != nil {
// return err
// }
//
// fmt.Println(resp.Items)
// fmt.Println(len(resp.Items))
// }
// return nil
//}
//
//func checkSteps(ctx context.Context, repo *dal.AmoDal) error {
// var testStep1 models.ResponseGetListSteps
// err := json.Unmarshal([]byte(jsonStep1), &testStep1)
// if err != nil {
// return err
// }
//
// var testStep2 models.ResponseGetListSteps
// err = json.Unmarshal([]byte(jsonStep2), &testStep2)
// if err != nil {
// return err
// }
//
// for i := 0; i < 9; i++ {
// err = repo.AmoRepo.CheckSteps(ctx, tools.ToStep(testStep1.Embedded.Statuses))
// if err != nil {
// return err
// }
// }
//
// for i := 0; i < 9; i++ {
// err = repo.AmoRepo.CheckSteps(ctx, tools.ToStep(testStep2.Embedded.Statuses))
// if err != nil {
// return err
// }
// }
//
// return nil
//}
//
//func gettingStepsFromCash(ctx context.Context, t *testing.T, repo *dal.AmoDal) error {
// for i := 1; i < 46; i++ {
// req := model.PaginationReq{
// Page: 1,
// Size: int32(i),
// }
//
// resp, err := repo.AmoRepo.GetStepsWithPagination(ctx, &req, "3")
// if err != nil {
// return err
// }
//
// fmt.Println(resp.Items)
// fmt.Println(len(resp.Items))
// }
// return nil
//}
//
//func checkTags(ctx context.Context, repo *dal.AmoDal) error {
// var testLeadsTags models.ResponseGetListTags
// err := json.Unmarshal([]byte(jsonLeadsTags), &testLeadsTags)
// if err != nil {
// return err
// }
//
// var testLeadsTags2 models.ResponseGetListTags
// err = json.Unmarshal([]byte(jsonLeadsTags2), &testLeadsTags2)
// if err != nil {
// return err
// }
//
// var testContactsTags models.ResponseGetListTags
// err = json.Unmarshal([]byte(jsonContactsTags), &testContactsTags)
// if err != nil {
// return err
// }
//
// var testContactsTags2 models.ResponseGetListTags
// err = json.Unmarshal([]byte(jsonContactsTags2), &testContactsTags2)
// if err != nil {
// return err
// }
//
// var testCompaniesTags models.ResponseGetListTags
// err = json.Unmarshal([]byte(jsonCompaniesTags), &testCompaniesTags)
// if err != nil {
// return err
// }
//
// var testCompaniesTags2 models.ResponseGetListTags
// err = json.Unmarshal([]byte(jsonCompaniesTags2), &testCompaniesTags2)
// if err != nil {
// return err
// }
//
// var testCustomersTags models.ResponseGetListTags
// err = json.Unmarshal([]byte(jsonCustomersTags), &testCustomersTags)
// if err != nil {
// return err
// }
//
// var testCustomersTags2 models.ResponseGetListTags
// err = json.Unmarshal([]byte(jsonCustomersTags2), &testCustomersTags2)
// if err != nil {
// return err
// }
// for i := 0; i < 9; i++ {
// accID := strconv.Itoa(i)
// err = repo.AmoRepo.CheckTags(ctx, tools.ToTag(testLeadsTags.Embedded.Tags, model.LeadsType), accID)
// if err != nil {
// fmt.Println(err)
// }
// err = repo.AmoRepo.CheckTags(ctx, tools.ToTag(testCompaniesTags.Embedded.Tags, model.CompaniesType), accID)
// if err != nil {
// fmt.Println(err)
// }
// err = repo.AmoRepo.CheckTags(ctx, tools.ToTag(testCustomersTags.Embedded.Tags, model.CustomersType), accID)
// if err != nil {
// fmt.Println(err)
// }
// err = repo.AmoRepo.CheckTags(ctx, tools.ToTag(testContactsTags.Embedded.Tags, model.ContactsType), accID)
// if err != nil {
// fmt.Println(err)
// }
// }
//
// for i := 0; i < 9; i++ {
// accID := strconv.Itoa(i)
// err = repo.AmoRepo.CheckTags(ctx, tools.ToTag(testLeadsTags2.Embedded.Tags, model.LeadsType), accID)
// if err != nil {
// fmt.Println(err)
// }
// err = repo.AmoRepo.CheckTags(ctx, tools.ToTag(testCompaniesTags2.Embedded.Tags, model.CompaniesType), accID)
// if err != nil {
// fmt.Println(err)
// }
// err = repo.AmoRepo.CheckTags(ctx, tools.ToTag(testCustomersTags2.Embedded.Tags, model.CustomersType), accID)
// if err != nil {
// fmt.Println(err)
// }
// err = repo.AmoRepo.CheckTags(ctx, tools.ToTag(testContactsTags2.Embedded.Tags, model.ContactsType), accID)
// if err != nil {
// fmt.Println(err)
// }
// if err != nil {
// fmt.Println(err)
// }
// }
//
// return nil
//}
//
//func gettingTagsFromCash(ctx context.Context, t *testing.T, repo *dal.AmoDal) error {
// for i := 1; i < 73; i++ {
// req := model.PaginationReq{
// Page: 1,
// Size: int32(i),
// }
//
// resp, err := repo.AmoRepo.GetTagsWithPagination(ctx, &req, "2")
// if err != nil {
// return err
// }
//
// fmt.Println(resp.Items)
// fmt.Println(len(resp.Items))
// }
// return nil
//}
//
//func checkFields(ctx context.Context, repo *dal.AmoDal) error {
// var testLeadsFields models.ResponseGetListFields
// err := json.Unmarshal([]byte(jsonLeadsFields), &testLeadsFields)
// if err != nil {
// return err
// }
//
// var testLeadsFields2 models.ResponseGetListFields
// err = json.Unmarshal([]byte(jsonLeadsFields2), &testLeadsFields2)
// if err != nil {
// return err
// }
//
// var testContactsFields models.ResponseGetListFields
// err = json.Unmarshal([]byte(jsonContactsFields), &testContactsFields)
// if err != nil {
// return err
// }
//
// var testContactsFields2 models.ResponseGetListFields
// err = json.Unmarshal([]byte(jsonContactsFields2), &testContactsFields2)
// if err != nil {
// return err
// }
//
// var testCompaniesFields models.ResponseGetListFields
// err = json.Unmarshal([]byte(jsonCompaniesFields), &testCompaniesFields)
// if err != nil {
// return err
// }
//
// var testCompaniesFields2 models.ResponseGetListFields
// err = json.Unmarshal([]byte(jsonCompaniesFields2), &testCompaniesFields2)
// if err != nil {
// return err
// }
//
// var testCustomersFields models.ResponseGetListFields
// err = json.Unmarshal([]byte(jsonCustomersFields), &testCustomersFields)
// if err != nil {
// return err
// }
//
// var testCustomersFields2 models.ResponseGetListFields
// err = json.Unmarshal([]byte(jsonCustomersFields2), &testCustomersFields2)
// if err != nil {
// return err
// }
//
// for i := 0; i < 9; i++ {
// accID := strconv.Itoa(i)
// err = repo.AmoRepo.CheckFields(ctx, tools.ToField(testLeadsFields.Embedded.CustomFields, model.LeadsType), accID)
// if err != nil {
// return err
// }
// err = repo.AmoRepo.CheckFields(ctx, tools.ToField(testCompaniesFields.Embedded.CustomFields, model.CompaniesType), accID)
// if err != nil {
// return err
// }
// err = repo.AmoRepo.CheckFields(ctx, tools.ToField(testCustomersFields.Embedded.CustomFields, model.CustomersType), accID)
// if err != nil {
// return err
// }
// err = repo.AmoRepo.CheckFields(ctx, tools.ToField(testContactsFields.Embedded.CustomFields, model.ContactsType), accID)
// if err != nil {
// return err
// }
// }
//
// for i := 0; i < 9; i++ {
// accID := strconv.Itoa(i)
// err = repo.AmoRepo.CheckFields(ctx, tools.ToField(testLeadsFields2.Embedded.CustomFields, model.LeadsType), accID)
// if err != nil {
// return err
// }
// err = repo.AmoRepo.CheckFields(ctx, tools.ToField(testCompaniesFields2.Embedded.CustomFields, model.CompaniesType), accID)
// if err != nil {
// return err
// }
// err = repo.AmoRepo.CheckFields(ctx, tools.ToField(testCustomersFields2.Embedded.CustomFields, model.CustomersType), accID)
// if err != nil {
// return err
// }
// err = repo.AmoRepo.CheckFields(ctx, tools.ToField(testContactsFields2.Embedded.CustomFields, model.ContactsType), accID)
// if err != nil {
// return err
// }
// if err != nil {
// return err
// }
// }
//
// return nil
//}
//
//func gettingFieldsFromCash(ctx context.Context, t *testing.T, repo *dal.AmoDal) error {
// for i := 1; i < 73; i++ {
// req := model.PaginationReq{
// Page: 1,
// Size: int32(i),
// }
//
// resp, err := repo.AmoRepo.GetFieldsWithPagination(ctx, &req, "1")
// if err != nil {
// return err
// }
//
// fmt.Println(resp.Items)
// fmt.Println(len(resp.Items))
// }
// return nil
//}
//
//func webhookCreate(ctx context.Context, repo *dal.AmoDal) error {
// for i := 1; i < 10; i++ {
// accID := strconv.Itoa(i)
// err := repo.AmoRepo.WebhookCreate(ctx, model.Token{
// RefreshToken: faker.UUID(),
// AccessToken: faker.UUID(),
// AccountID: accID,
// AuthCode: faker.String(),
// Expiration: time.Now().Unix() + 10,
// CreatedAt: time.Now().Unix(),
// })
// if err != nil {
// return err
// }
// }
// return nil
//}
//
//func webhookUpdate(ctx context.Context, repo *dal.AmoDal) error {
// var tokens []model.Token
// for i := 1; i < 10; i++ {
// accID := strconv.Itoa(i)
// tokens = append(tokens, model.Token{
// RefreshToken: faker.UUID(),
// AccessToken: faker.UUID(),
// AccountID: accID,
// Expiration: time.Now().Unix() + int64(i),
// CreatedAt: time.Now().Unix(),
// })
// }
//
// err := repo.AmoRepo.WebhookUpdate(ctx, tokens)
// if err != nil {
// fmt.Println(err)
// return err
// }
// return nil
//}
//
//func checkExpired(ctx context.Context, repo *dal.AmoDal) ([]model.Token, error) {
// tokens, err := repo.AmoRepo.CheckExpired(ctx)
// if err != nil {
// return nil, err
// }
//
// return tokens, nil
//}
//
//func getAllTokens(ctx context.Context, t *testing.T, repo *dal.AmoDal) error {
// tokens, err := repo.AmoRepo.GetAllTokens(ctx)
// if err != nil {
// return err
// }
// assert.Equal(t, len(tokens), 9)
//
// return nil
//}
//
//func saveUtms(ctx context.Context, repo *dal.AmoDal) error {
// for i := 1; i < 10; i++ {
// var utms []model.UTM
// for j := 1; j < 50; j++ {
// utm := model.UTM{
// Name: strconv.Itoa(i),
// Quizid: int32(j),
// Accountid: faker.Int32(),
// Amofieldid: int32(j),
// Createdat: time.Now().Unix(),
// }
// utms = append(utms, utm)
// }
// resp, err := repo.AmoRepo.SavingUserUtm(ctx, utms, strconv.Itoa(i))
// if err != nil {
// return err
// }
// fmt.Println(resp)
// }
//
// return nil
//}
//
//func gettingUserUtm(ctx context.Context, t *testing.T, repo *dal.AmoDal) error {
// for i := 1; i < 50; i++ {
// req := model.PaginationReq{
// Page: 1,
// Size: int32(i),
// }
//
// resp, err := repo.AmoRepo.GettingUserUtm(ctx, &req, "1", 1)
// if err != nil {
// return err
// }
//
// fmt.Println(resp.Items)
// fmt.Println(len(resp.Items))
// }
// return nil
//}
//
//func deleteUserUTM(ctx context.Context, t *testing.T, repo *dal.AmoDal) error {
// req := model.PaginationReq{
// Page: 1,
// Size: 50,
// }
//
// resp, err := repo.AmoRepo.GettingUserUtm(ctx, &req, "5", 5)
// if err != nil {
// return err
// }
//
// var fordetete []int32
// for _, r := range resp.Items {
// fordetete = append(fordetete, int32(r.ID))
// }
// err = repo.AmoRepo.DeletingUserUtm(ctx, &model.ListDeleteUTMIDsReq{
// fordetete,
// })
// if err != nil {
// return err
// }
//
// for i := 1; i < 50; i++ {
// req := model.PaginationReq{
// Page: 1,
// Size: int32(i),
// }
//
// resp, err := repo.AmoRepo.GettingUserUtm(ctx, &req, "5", 5)
// if err != nil {
// return err
// }
//
// fmt.Println(resp.Items)
// fmt.Println(len(resp.Items))
// }
//
// return nil
//}
//
//func RuleTest(ctx context.Context, repo *dal.AmoDal) {
// testMap := make(map[int]int)
// testMap[11111] = 11111
// err := repo.AmoRepo.SetQuizSettings(ctx, &model.RulesReq{
// PerformerID: 2,
// PipelineID: 1,
// StepID: 1,
// Utms: make([]int32, 3),
// Fieldsrule: model.Fieldsrule{
// Lead: []model.FieldRule{
// {
// Questionid: testMap,
// },
// },
// Contact: []model.FieldRule{
// {
// Questionid: testMap,
// },
// },
// Company: []model.FieldRule{
// {
// Questionid: testMap,
// },
// },
// Customer: []model.FieldRule{
// {
// Questionid: testMap,
// },
// },
// },
// }, "3", 3)
//
// if err != nil {
// fmt.Println(err)
// }
//
// testMap[222] = 3
//
// err = repo.AmoRepo.ChangeQuizSettings(ctx, &model.RulesReq{
// PerformerID: 111,
// PipelineID: 111,
// StepID: 111,
// Utms: make([]int32, 10),
// Fieldsrule: model.Fieldsrule{
// Lead: []model.FieldRule{
// {
// Questionid: testMap,
// },
// },
// Contact: []model.FieldRule{
// {
// Questionid: testMap,
// },
// },
// Company: []model.FieldRule{
// {
// Questionid: testMap,
// },
// },
// Customer: []model.FieldRule{
// {
// Questionid: testMap,
// },
// },
// },
// }, "3", 3)
//
// if err != nil {
// fmt.Println(err, "UPDATE")
// }
//
// rule3, err := repo.AmoRepo.GettingQuizRules(ctx, 1)
// if err != nil {
// fmt.Println(err)
// }
// fmt.Println(rule3)
//}
//
//func Test_UTM(t *testing.T) {
// ctx := context.Background()
// repo, err := dal.NewAmoDal(ctx, "host=localhost port=35432 user=squiz password=Redalert2 dbname=squiz sslmode=disable")
//
// if err != nil {
// fmt.Println("err init postgres")
// panic(err)
// }
//
// var utms []model.UTM
//
// for i := 0; i < 10; i++ {
// utm := model.UTM{
// Quizid: int32(i) + 1,
// Accountid: 30228997,
// Name: faker.String(),
// }
//
// utms = append(utms, utm)
// }
//
// utmss, err := repo.AmoRepo.SavingUserUtm(ctx, utms, "64f2cd7a7047f28fdabf6d9e")
// if err != nil {
// fmt.Println(err)
// }
//
// var ids []int32
//
// for _, id := range utmss.Ids {
// ids = append(ids, int32(id))
// }
//
// resp, err := repo.AmoRepo.GetUtmsByID(ctx, ids)
// if err != nil {
// fmt.Println(err)
// }
//
// fmt.Println(resp)
//}
func Test_GetCurrentAccount(t *testing.T) {
ctx := context.Background()
repo, err := dal.NewAmoDal(ctx, "host=localhost port=35432 user=squiz password=Redalert2 dbname=squiz sslmode=disable")
if err != nil {
fmt.Println("err init postgres")
panic(err)
}
accountID := "64f2cd7a7047f28fdabf6d9e"
account, err := repo.AmoRepo.GetCurrentAccount(ctx, accountID)
assert.NoError(t, err)
fmt.Println(account)
}