package test import ( "context" "fmt" "github.com/stretchr/testify/assert" "penahub.gitlab.yandexcloud.net/backend/quiz/common.git/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) }