diff --git a/.github/workflows/testing.yml b/.github/workflows/testing.yml new file mode 100644 index 0000000..6bd3db3 --- /dev/null +++ b/.github/workflows/testing.yml @@ -0,0 +1,47 @@ +name: Go testing + +on: + push: + branches: ["develop", "bugfixes"] + pull_request: + branches: ["develop"] + +jobs: + small_tests: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + + - name: Set up Go + uses: actions/setup-go@v4 + with: + go-version: "1.22.1" + - name: execute small test + run: | + cd internal/cart + go test -run TestCartUtils + midium_tests: + runs-on: ubuntu-latest + needs: small_tests + steps: + - uses: actions/checkout@v3 + + - name: Set up Go + uses: actions/setup-go@v4 + with: + go-version: "1.22.1" + - name: Setup databases + run: | + sudo apt-get update + sudo apt install docker docker-compose -y + curl -s https://packages.stripe.dev/api/security/keypair/stripe-cli-gpg/public | gpg --dearmor | sudo tee /usr/share/keyrings/stripe.gpg + echo "deb [signed-by=/usr/share/keyrings/stripe.gpg] https://packages.stripe.dev/stripe-cli-debian-local stable main" | sudo tee -a /etc/apt/sources.list.d/stripe.list + sudo apt update + sudo apt install stripe + bash test_server.sh & + sleep 10 + - name: execute midium test + run: | + cd internal/cart + go test -run TestRepository + go test -run TestCartRequests diff --git a/handler/images.go b/handler/images.go index f5dfc85..65b2db3 100644 --- a/handler/images.go +++ b/handler/images.go @@ -28,7 +28,7 @@ func (h *Handler) SetupRoutesForImages(firebaseApp validation.IFirebaseApp, manu return } log.Print(*itemId) - items, err := Crud.GetImages(*itemId + "/") + items, err := Crud.GetImages("src/images/" + *itemId + "/") if err != nil { log.Print(err) err = &utils.InternalError{Message: utils.InternalErrorR2} @@ -100,10 +100,10 @@ func (h *Handler) SetupRoutesForImages(firebaseApp validation.IFirebaseApp, manu } // ファイルの保存先パス if i == 0 { - destPath = filepath.Join(*itemId, "/thumb.png") + destPath = filepath.Join("src/images/"+*itemId, "/thumb.png") } else { - destPath = filepath.Join(*itemId, "/", strconv.Itoa(i)+".png") + destPath = filepath.Join("src/images/"+*itemId, "/", strconv.Itoa(i)+".png") } Crud.Crud.UploadObject(ctx, b, destPath) } @@ -126,7 +126,7 @@ func (h *Handler) SetupRoutesForImages(firebaseApp validation.IFirebaseApp, manu utils.ReturnErrorResponse(ctx, &utils.InternalError{Message: utils.InternalErrorUnAuthorized}) return } - images, err := Crud.GetImages(*itemId + "/") + images, err := Crud.GetImages("src/images/" + *itemId + "/") if err != nil { utils.ReturnErrorResponse(ctx, err) return diff --git a/handler/stripe.go b/handler/stripe.go index 7a36dbc..0b78065 100644 --- a/handler/stripe.go +++ b/handler/stripe.go @@ -51,7 +51,7 @@ func (h *Handler) SetupRoutesForStripe(firebaseApp validation.IFirebaseApp, User utils.ReturnErrorResponse(ctx, err) return } - ctx.JSON(http.StatusOK, TransactionList) + ctx.JSON(http.StatusOK, gin.H{"transaction_list": TransactionList}) }) StripeRouter.GET("/transaction/:transactionId", func(ctx *gin.Context) { transactionId, err := utils.GetParams("transactionId", ctx) @@ -65,7 +65,7 @@ func (h *Handler) SetupRoutesForStripe(firebaseApp validation.IFirebaseApp, User utils.ReturnErrorResponse(ctx, err) return } - ctx.JSON(http.StatusOK, TransactionDetails) + ctx.JSON(http.StatusOK, gin.H{"transaction_details": TransactionDetails}) }) } StripeManufacturerRouter := h.Router.Group("/api/stripe") diff --git a/internal/cart/cart_repository_test.go b/internal/cart/cart_repository_test.go index 722f5f1..2a88481 100644 --- a/internal/cart/cart_repository_test.go +++ b/internal/cart/cart_repository_test.go @@ -10,7 +10,7 @@ import ( "github.com/charisworks/charisworks-backend/internal/utils" ) -func Test_CartCRUD(t *testing.T) { +func TestRepository_CartCRUD(t *testing.T) { After(t) db, err := utils.DBInitTest() @@ -382,7 +382,7 @@ func Test_CartCRUD(t *testing.T) { After(t) } -func Test_GetItem(t *testing.T) { +func TestRepository_GetItem(t *testing.T) { db, err := utils.DBInitTest() if err != nil { t.Errorf("error") diff --git a/internal/cart/cart_test.go b/internal/cart/cart_test.go index 050135f..2780599 100644 --- a/internal/cart/cart_test.go +++ b/internal/cart/cart_test.go @@ -192,13 +192,7 @@ func After(t *testing.T) { if err != nil { t.Errorf("error") } - trdb, err := utils.HistoryDBInitTest() - if err != nil { - t.Errorf("error") - } - trdb.Table("transactions").Where("1=1").Delete(utils.Transaction{}) - trdb.Table("transaction_items").Where("1=1").Delete(utils.TransactionItem{}) db.Table("users").Where("1=1").Delete(utils.User{}) db.Table("shippings").Where("1=1").Delete(utils.Shipping{}) db.Table("items").Where("1=1").Delete(utils.Item{}) diff --git a/internal/cash/stripe.go b/internal/cash/stripe.go index a6748e1..93c4e8c 100644 --- a/internal/cash/stripe.go +++ b/internal/cash/stripe.go @@ -78,8 +78,8 @@ func (r Requests) GetRegisterLink(email string, user users.User) (url string, er } accountLinkParams := &stripe.AccountLinkParams{ Account: stripe.String(a.ID), - RefreshURL: stripe.String("http://localhost:3000"), - ReturnURL: stripe.String("http://localhost:3000"), + RefreshURL: stripe.String("http://beta.charis.works"), + ReturnURL: stripe.String("http://beta.charis.works/purchase?step=3"), Type: stripe.String("account_onboarding"), Collect: stripe.String("eventually_due"), } @@ -139,7 +139,7 @@ func (r Requests) CreatePaymentintent(userId string, totalAmount int) (ClientSec Currency: stripe.String(string(stripe.CurrencyJPY)), // In the latest version of the API, specifying the `automatic_payment_methods` parameter is optional because Stripe enables its functionality by default. - PaymentMethodTypes: []*string{stripe.String("card"), stripe.String("konbini")}, + PaymentMethodTypes: []*string{stripe.String("card")}, } pi, err := paymentintent.New(params) diff --git a/internal/manufacturer/manufacturer_test.go b/internal/manufacturer/manufacturer_test.go index 294179b..ff74e78 100644 --- a/internal/manufacturer/manufacturer_test.go +++ b/internal/manufacturer/manufacturer_test.go @@ -164,12 +164,7 @@ func After(t *testing.T) { if err != nil { t.Errorf("error") } - trdb, err := utils.HistoryDBInitTest() - if err != nil { - t.Errorf("error") - } - trdb.Table("transactions").Where("1=1").Delete(utils.Transaction{}) - trdb.Table("transaction_items").Where("1=1").Delete(utils.TransactionItem{}) + db.Table("users").Where("1=1").Delete(utils.User{}) db.Table("shippings").Where("1=1").Delete(utils.Shipping{}) db.Table("items").Where("1=1").Delete(utils.Item{}) diff --git a/internal/manufacturer/manufacturer_utils_test.go b/internal/manufacturer/manufacturer_utils_test.go index 1d14a43..2bdb1f0 100644 --- a/internal/manufacturer/manufacturer_utils_test.go +++ b/internal/manufacturer/manufacturer_utils_test.go @@ -5,6 +5,7 @@ import ( "reflect" "testing" + "github.com/charisworks/charisworks-backend/internal/items" "github.com/charisworks/charisworks-backend/internal/utils" ) @@ -188,7 +189,7 @@ func TestInspectedUpdatePayload(t *testing.T) { Tags: []string{"aaa", "bbb"}, }, want: map[string]interface{}{ - "status": "Available", + "status": items.Available, "tags": []string{"aaa", "bbb"}, }, }, @@ -221,7 +222,7 @@ func TestInspectedUpdatePayload(t *testing.T) { log.Print(err.Error()) } if !reflect.DeepEqual(payload, tt.want) { - t.Errorf("%v,got,%v,want%v", tt.name, payload, tt.want) + t.Errorf("got %v, want %v", payload, tt.want) } }) diff --git a/internal/transaction/transaction_repository_test.go b/internal/transaction/transaction_repository_test.go index 58e316f..dc4cefe 100644 --- a/internal/transaction/transaction_repository_test.go +++ b/internal/transaction/transaction_repository_test.go @@ -18,16 +18,13 @@ func Test_Transaction_Repository(t *testing.T) { if err != nil { t.Errorf("error") } - trdb, err := utils.HistoryDBInitTest() - if err != nil { - t.Errorf("error") - } + R2Conns := images.R2Conns{Crud: nil} UserRepository := users.UserRepository{DB: db} manufacturerRequests := manufacturer.Requests{ManufacturerItemRepository: manufacturer.Repository{DB: db}, ManufacturerInspectPayloadUtils: manufacturer.ManufacturerUtils{}, ItemRepository: items.ItemRepository{DB: db}} manufacturerRepository := manufacturer.Repository{DB: db, Crud: R2Conns} cartRequests := cart.Requests{CartRepository: cart.Repository{DB: db}, CartUtils: cart.Utils{}, ItemGetStatus: items.GetStatus{DB: db}} - transactionRepository := Repository{DB: trdb, UserRepository: UserRepository} + transactionRepository := Repository{DB: db, UserRepository: UserRepository} cartRepository := cart.Repository{DB: db} Items := []manufacturer.RegisterPayload{ { diff --git a/internal/transaction/transaction_test.go b/internal/transaction/transaction_test.go index bf9dfa9..59afc4f 100644 --- a/internal/transaction/transaction_test.go +++ b/internal/transaction/transaction_test.go @@ -20,16 +20,13 @@ func Test_Transaction(t *testing.T) { if err != nil { t.Errorf("error") } - trdb, err := utils.HistoryDBInitTest() - if err != nil { - t.Errorf("error") - } + UserRepository := users.UserRepository{DB: db} userRequests := users.Requests{UserRepository: UserRepository, UserUtils: users.UserUtils{}} manufacturerRequests := manufacturer.Requests{ManufacturerItemRepository: manufacturer.Repository{DB: db}, ManufacturerInspectPayloadUtils: manufacturer.ManufacturerUtils{}, ItemRepository: items.ItemRepository{DB: db}} cartRequests := cart.Requests{CartRepository: cart.Repository{DB: db}, CartUtils: cart.Utils{}, ItemGetStatus: items.GetStatus{DB: db}} - transactionRequests := TransactionRequests{TransactionRepository: Repository{DB: trdb, UserRepository: UserRepository}, CartRepository: cartRequests.CartRepository, CartUtils: cartRequests.CartUtils, StripeRequests: cash.Requests{}, StripeUtils: cash.Utils{}} - webhook := Webhook{StripeUtils: cash.Utils{}, TransactionRepository: Repository{DB: trdb, UserRepository: UserRepository}, ItemUpdater: items.Updater{DB: db}} + transactionRequests := TransactionRequests{TransactionRepository: Repository{DB: db, UserRepository: UserRepository}, CartRepository: cartRequests.CartRepository, CartUtils: cartRequests.CartUtils, StripeRequests: cash.Requests{}, StripeUtils: cash.Utils{}} + webhook := Webhook{StripeUtils: cash.Utils{}, TransactionRepository: Repository{DB: db, UserRepository: UserRepository}, ItemUpdater: items.Updater{DB: db}} user_data := []struct { userId string profile users.UserProfile @@ -405,16 +402,13 @@ func Test_Transaction_Cancelled(t *testing.T) { if err != nil { t.Errorf("error") } - trdb, err := utils.HistoryDBInitTest() - if err != nil { - t.Errorf("error") - } + UserRepository := users.UserRepository{DB: db} userRequests := users.Requests{UserRepository: UserRepository, UserUtils: users.UserUtils{}} manufacturerRequests := manufacturer.Requests{ManufacturerItemRepository: manufacturer.Repository{DB: db}, ManufacturerInspectPayloadUtils: manufacturer.ManufacturerUtils{}, ItemRepository: items.ItemRepository{DB: db}} cartRequests := cart.Requests{CartRepository: cart.Repository{DB: db}, CartUtils: cart.Utils{}, ItemGetStatus: items.GetStatus{DB: db}} - transactionRequests := TransactionRequests{TransactionRepository: Repository{DB: trdb, UserRepository: UserRepository}, CartRepository: cartRequests.CartRepository, CartUtils: cartRequests.CartUtils, StripeRequests: cash.Requests{}, StripeUtils: cash.Utils{}} - webhook := Webhook{StripeUtils: cash.Utils{}, TransactionRepository: Repository{DB: trdb, UserRepository: UserRepository}, ItemUpdater: items.Updater{DB: db}} + transactionRequests := TransactionRequests{TransactionRepository: Repository{DB: db, UserRepository: UserRepository}, CartRepository: cartRequests.CartRepository, CartUtils: cartRequests.CartUtils, StripeRequests: cash.Requests{}, StripeUtils: cash.Utils{}} + webhook := Webhook{StripeUtils: cash.Utils{}, TransactionRepository: Repository{DB: db, UserRepository: UserRepository}, ItemUpdater: items.Updater{DB: db}} user_data := []struct { userId string profile users.UserProfile @@ -736,13 +730,9 @@ func After(t *testing.T) { if err != nil { t.Errorf("error") } - trdb, err := utils.HistoryDBInitTest() - if err != nil { - t.Errorf("error") - } - trdb.Table("transactions").Where("1=1").Delete(utils.Transaction{}) - trdb.Table("transaction_items").Where("1=1").Delete(utils.TransactionItem{}) + db.Table("transactions").Where("1=1").Delete(utils.Transaction{}) + db.Table("transaction_items").Where("1=1").Delete(utils.TransactionItem{}) db.Table("users").Where("1=1").Delete(utils.User{}) db.Table("shippings").Where("1=1").Delete(utils.Shipping{}) db.Table("items").Where("1=1").Delete(utils.Item{}) diff --git a/internal/users/models.go b/internal/users/models.go index d69fde8..a457632 100644 --- a/internal/users/models.go +++ b/internal/users/models.go @@ -5,26 +5,26 @@ import ( ) type User struct { - UserId string `json:"user_id" gorm:"user_id"` - UserProfile UserProfile `json:"profile" gorm:"profile"` - UserAddress UserAddress `json:"address" gorm:"address"` + UserId string `json:"user_id,omitempty" gorm:"user_id"` + UserProfile UserProfile `json:"profile,omitempty" gorm:"profile"` + UserAddress UserAddress `json:"address,omitempty" gorm:"address"` } type UserProfile struct { - DisplayName string `json:"display_name" gorm:"display_name"` - Description string `json:"description" gorm:"description"` - StripeAccountId string `json:"stripe_account_id" gorm:"stripe_account_id"` + DisplayName string `json:"display_name,omitempty" gorm:"display_name"` + Description string `json:"description,omitempty" gorm:"description"` + StripeAccountId string `json:"stripe_account_id,omitempty" gorm:"stripe_account_id"` CreatedAt time.Time `json:"crated_at" gorm:"created_at"` } type UserAddress struct { - FirstName string `json:"first_name" gorm:"first_name"` - FirstNameKana string `json:"first_name_kana" gorm:"first_name_kana"` - LastName string `json:"last_name" gorm:"last_name"` - LastNameKana string `json:"last_name_kana" gorm:"last_name_kana"` - ZipCode string `json:"zip_code" gorm:"zip_code"` - Address1 string `json:"address_1" gorm:"address_1"` - Address2 string `json:"address_2" gorm:"address_2"` - Address3 string `json:"address_3" gorm:"address_3"` - PhoneNumber string `json:"phone_number" gorm:"phone_number"` + FirstName string `json:"first_name,omitempty" gorm:"first_name"` + FirstNameKana string `json:"first_name_kana,omitempty" gorm:"first_name_kana"` + LastName string `json:"last_name,omitempty" gorm:"last_name"` + LastNameKana string `json:"last_name_kana,omitempty" gorm:"last_name_kana"` + ZipCode string `json:"zip_code,omitempty" gorm:"zip_code"` + Address1 string `json:"address_1,omitempty" gorm:"address_1"` + Address2 string `json:"address_2,omitempty" gorm:"address_2"` + Address3 string `json:"address_3,omitempty" gorm:"address_3"` + PhoneNumber string `json:"phone_number,omitempty" gorm:"phone_number"` } type UserProfileRegisterPayload struct { DisplayName string `json:"display_name" binding:"required"` @@ -39,7 +39,7 @@ type AddressRegisterPayload struct { Address1 string `json:"address_1" binding:"required"` Address2 string `json:"address_2" binding:"required"` Address3 string `json:"address_3"` - PhoneNumber string `json:"phone_number" binding:"required"` + PhoneNumber string `json:"phone_number" ` } type IRequests interface { diff --git a/internal/users/user_repository.go b/internal/users/user_repository.go index f295af4..642ecf2 100644 --- a/internal/users/user_repository.go +++ b/internal/users/user_repository.go @@ -32,6 +32,10 @@ func (r UserRepository) Create(UserId string) error { func (r UserRepository) Get(UserId string) (user User, err error) { DBUser := new(utils.User) user = *new(User) + if r.DB.Table("users").FirstOrCreate(&DBUser, utils.User{Id: UserId}).Error != nil { + log.Print("DB error: ", err) + return user, err + } if err := r.DB.Table("users").Where("id = ?", UserId).First(&DBUser).Error; err != nil { log.Print("DB error: ", err) if err.Error() == "record not found" { diff --git a/internal/users/user_test.go b/internal/users/user_test.go index 1490d88..e58e754 100644 --- a/internal/users/user_test.go +++ b/internal/users/user_test.go @@ -167,6 +167,72 @@ func TestUserCRUD(t *testing.T) { }, }, }, + { + name: "電話番号任意", + userId: "test", + want: User{ + UserId: "test", + }, + updateProfile: UserProfile{ + DisplayName: "test", + Description: "test", + }, + wantProfileUpdated: User{ + UserId: "test", + UserProfile: UserProfile{ + DisplayName: "test", + Description: "test", + }, + }, + registerAddress: AddressRegisterPayload{ + ZipCode: "000-0000", + Address1: "test", + Address2: "test", + Address3: "test", + FirstName: "test", + LastName: "test", + FirstNameKana: "テスト", + LastNameKana: "テスト", + }, + wantAddressRegistered: User{ + UserId: "test", + UserProfile: UserProfile{ + DisplayName: "test", + Description: "test", + }, + UserAddress: UserAddress{ + ZipCode: "000-0000", + Address1: "test", + Address2: "test", + Address3: "test", + FirstName: "test", + LastName: "test", + FirstNameKana: "テスト", + LastNameKana: "テスト", + }, + }, + updateAddress: UserAddress{ + FirstName: "updated", + LastName: "updated", + }, + wantAddressUpdated: User{ + UserId: "test", + UserProfile: UserProfile{ + DisplayName: "test", + Description: "test", + }, + UserAddress: UserAddress{ + ZipCode: "000-0000", + Address1: "test", + Address2: "test", + Address3: "test", + FirstName: "updated", + LastName: "updated", + FirstNameKana: "テスト", + LastNameKana: "テスト", + }, + }, + }, { name: "電話番号などが自動変換されるか", userId: "test", @@ -256,6 +322,8 @@ func TestUserCRUD(t *testing.T) { if err != nil { t.Errorf("error") } + + tt.want.UserProfile.CreatedAt = user.UserProfile.CreatedAt if CompareUser(user, tt.want) { t.Errorf("got: %v, want: %v", user, tt.want) } diff --git a/internal/users/user_utils.go b/internal/users/user_utils.go index b6d492f..c709c73 100644 --- a/internal/users/user_utils.go +++ b/internal/users/user_utils.go @@ -67,6 +67,8 @@ func (u UserUtils) InspectAddressUpdatePayload(address UserAddress) (map[string] } else { return conditions, &utils.InternalError{Message: utils.InternalErrorInvalidPayload} } + } else { + conditions["phone_number"] = "" } return conditions, nil } @@ -104,14 +106,14 @@ func (u UserUtils) InspectAddressRegisterPayload(address AddressRegisterPayload) return address, &utils.InternalError{Message: utils.InternalErrorInvalidPayload} } - if len(address.PhoneNumber) < 1 { - return address, &utils.InternalError{Message: utils.InternalErrorInvalidPayload} - } - isValid, phoneNumber := ConvertPhoneNumber(address.PhoneNumber) - if !isValid { - return address, &utils.InternalError{Message: utils.InternalErrorInvalidPayload} + if len(address.PhoneNumber) > 1 { + isValid, phoneNumber := ConvertPhoneNumber(address.PhoneNumber) + if !isValid { + return address, &utils.InternalError{Message: utils.InternalErrorInvalidPayload} + } + address.PhoneNumber = phoneNumber + } - address.PhoneNumber = phoneNumber return address, nil } diff --git a/internal/users/user_utils_test.go b/internal/users/user_utils_test.go index c7745eb..11c739e 100644 --- a/internal/users/user_utils_test.go +++ b/internal/users/user_utils_test.go @@ -1,6 +1,7 @@ package users import ( + "log" "reflect" "testing" @@ -303,6 +304,7 @@ func TestInspectAddressRegisterPayload(t *testing.T) { Address2: "test", PhoneNumber: "000-0000-0000", }, + err: nil, }, { name: "カタカナじゃない", @@ -510,7 +512,7 @@ func TestInspectAddressRegisterPayload(t *testing.T) { }, err: &utils.InternalError{Message: utils.InternalErrorInvalidPayload}, }, { - name: "なにかない", + name: "なにかない(電話番号が任意)", payload: AddressRegisterPayload{ FirstName: "test", FirstNameKana: "テスト", @@ -528,9 +530,7 @@ func TestInspectAddressRegisterPayload(t *testing.T) { ZipCode: "012-3456", Address1: "test", Address2: "test", - PhoneNumber: "000-0000-0000", }, - err: &utils.InternalError{Message: utils.InternalErrorInvalidPayload}, }, { name: "電話番号エラー", payload: AddressRegisterPayload{ @@ -605,6 +605,7 @@ func TestInspectAddressRegisterPayload(t *testing.T) { t.Run(tt.name, func(t *testing.T) { got, err := UserUtils.InspectAddressRegisterPayload(tt.payload) if err != nil { + log.Print(err) if err.Error() != tt.err.Error() { t.Errorf("got: %v, want: %v", err, tt.err) } diff --git a/internal/utils/db.go b/internal/utils/db.go index 87e3d2c..6f38e34 100644 --- a/internal/utils/db.go +++ b/internal/utils/db.go @@ -22,6 +22,18 @@ func DBInit() (db *gorm.DB, err error) { return } func DBInitTest() (db *gorm.DB, err error) { + // refer https://github.com/go-sql-driver/mysql#dsn-data-source-name for details + dsn := "root:password@tcp(127.0.0.1:3307)/CharisWorks?parseTime=true" + log.Print("connect to ", dsn) + db, err = gorm.Open(mysql.Open(dsn), &gorm.Config{}) + if err != nil { + return nil, err + } + db.AutoMigrate(&User{}, &Item{}, &Cart{}, &Shipping{}, &Transaction{}, &TransactionItem{}) + + return +} +func DBInitTestForDeploy() (db *gorm.DB, err error) { // refer https://github.com/go-sql-driver/mysql#dsn-data-source-name for details dsn := "root:password@tcp(127.0.0.1:3306)/CharisWorks?parseTime=true" log.Print("connect to ", dsn) @@ -29,7 +41,7 @@ func DBInitTest() (db *gorm.DB, err error) { if err != nil { return nil, err } - db.AutoMigrate(&User{}, &Item{}, &Cart{}, &Shipping{}) + db.AutoMigrate(&User{}, &Item{}, &Cart{}, &Shipping{}, &Transaction{}, &TransactionItem{}) return } @@ -88,7 +100,7 @@ type Shipping struct { Address_1 string `gorm:"address_1"` Address_2 string `gorm:"address_2"` Address_3 string `gorm:"address_3" null:"true"` - PhoneNumber string `gorm:"phone_number"` + PhoneNumber string `gorm:"phone_number" null:"true"` FirstName string `gorm:"first_name"` FirstNameKana string `gorm:"first_name_kana"` LastName string `gorm:"last_name"` diff --git a/internal/utils/utils.go b/internal/utils/utils.go index 313954f..df8ddec 100644 --- a/internal/utils/utils.go +++ b/internal/utils/utils.go @@ -41,6 +41,7 @@ func CORS(r *gin.Engine) { "http://localhost:3001", "http://localhost:3000", "http://localhost:3002", + "https://beta.charis.works", }, // アクセス許可するHTTPメソッド AllowMethods: []string{ diff --git a/test/frontE2E_test.go b/test/frontE2E_test.go index c19ac11..476d1ce 100644 --- a/test/frontE2E_test.go +++ b/test/frontE2E_test.go @@ -25,7 +25,9 @@ func TestE2E(t *testing.T) { db, err := utils.DBInitTest() if err != nil { t.Errorf("error") + } + UserRepository := users.UserRepository{DB: db} userRequests := users.Requests{UserRepository: UserRepository, UserUtils: users.UserUtils{}} manufacturerRequests := manufacturer.Requests{ManufacturerItemRepository: manufacturer.Repository{DB: db}, ManufacturerInspectPayloadUtils: manufacturer.ManufacturerUtils{}, ItemRepository: items.ItemRepository{DB: db}} @@ -35,7 +37,6 @@ func TestE2E(t *testing.T) { profile users.UserProfile address users.AddressRegisterPayload }{ - { userId: "WQElviFCW3TEV77prNZB7Q2TwGt2", profile: users.UserProfile{ @@ -56,13 +57,13 @@ func TestE2E(t *testing.T) { }, }, } + //a for _, u := range user_data { if err = userRequests.Create(u.userId); err != nil { t.Errorf(err.Error()) After(t) return } - if u.profile.StripeAccountId != "skip" { if err = userRequests.AddressRegister(u.userId, u.address); err != nil { t.Errorf(err.Error()) @@ -97,6 +98,46 @@ func TestE2E(t *testing.T) { Tags: []string{"aaa", "ccc"}, }, }, + { + Name: "test3", + Price: 3000, + Details: manufacturer.ItemRegisterDetailsPayload{ + Stock: 3, + Size: 4, + Description: "test", + Tags: []string{"aaa", "ccc"}, + }, + }, + { + Name: "test4", + Price: 3000, + Details: manufacturer.ItemRegisterDetailsPayload{ + Stock: 3, + Size: 4, + Description: "test", + Tags: []string{"aaa", "ccc"}, + }, + }, + { + Name: "test5", + Price: 3000, + Details: manufacturer.ItemRegisterDetailsPayload{ + Stock: 3, + Size: 4, + Description: "test", + Tags: []string{"aaa", "ccc"}, + }, + }, + { + Name: "test6", + Price: 3000, + Details: manufacturer.ItemRegisterDetailsPayload{ + Stock: 3, + Size: 4, + Description: "test", + Tags: []string{"aaa", "ccc"}, + }, + }, } for _, item := range item_data { @@ -151,16 +192,13 @@ func TestE2EforAfterPurchase(t *testing.T) { if err != nil { t.Errorf("error") } - trdb, err := utils.HistoryDBInitTest() - if err != nil { - t.Errorf("error") - } + UserRepository := users.UserRepository{DB: db} userRequests := users.Requests{UserRepository: UserRepository, UserUtils: users.UserUtils{}} manufacturerRequests := manufacturer.Requests{ManufacturerItemRepository: manufacturer.Repository{DB: db}, ManufacturerInspectPayloadUtils: manufacturer.ManufacturerUtils{}, ItemRepository: items.ItemRepository{DB: db}} cartRequests := cart.Requests{CartRepository: cart.Repository{DB: db}, CartUtils: cart.Utils{}, ItemGetStatus: items.GetStatus{DB: db}} - transactionRequests := transaction.TransactionRequests{TransactionRepository: transaction.Repository{DB: trdb, UserRepository: UserRepository}, CartRepository: cart.Repository{DB: db}, CartUtils: cart.Utils{}, StripeRequests: cash.Requests{CartRequests: cartRequests, UserRequests: userRequests}, StripeUtils: cash.Utils{}} - webhook := transaction.Webhook{StripeUtils: cash.Utils{}, TransactionRepository: transaction.Repository{DB: trdb, UserRepository: UserRepository}, ItemUpdater: items.Updater{DB: db}} + transactionRequests := transaction.TransactionRequests{TransactionRepository: transaction.Repository{DB: db, UserRepository: UserRepository}, CartRepository: cart.Repository{DB: db}, CartUtils: cart.Utils{}, StripeRequests: cash.Requests{CartRequests: cartRequests, UserRequests: userRequests}, StripeUtils: cash.Utils{}} + webhook := transaction.Webhook{StripeUtils: cash.Utils{}, TransactionRepository: transaction.Repository{DB: db, UserRepository: UserRepository}, ItemUpdater: items.Updater{DB: db}} user_data := []struct { userId string @@ -302,9 +340,7 @@ func After(t *testing.T) { if err != nil { t.Errorf("error") } - trdb, _ := utils.HistoryDBInitTest() - trdb.Table("transactions").Where("1=1").Delete(utils.Transaction{}) - trdb.Table("transaction_items").Where("1=1").Delete(utils.TransactionItem{}) + db.Table("users").Where("1=1").Delete(utils.User{}) db.Table("shippings").Where("1=1").Delete(utils.Shipping{}) db.Table("items").Where("1=1").Delete(utils.Item{}) diff --git a/test_server/docker-compose.yml b/test_server/docker-compose.yml index 1d048bc..9bf729d 100644 --- a/test_server/docker-compose.yml +++ b/test_server/docker-compose.yml @@ -23,10 +23,9 @@ services: # この行がないと起動しない MYSQL_DATABASE: CharisWorks TZ: "Asia/Tokyo" - - backup_db1: + test_db: image: mariadb:latest - container_name: backup_mock_db + container_name: test_tr_mock_db tty: true ports: - 127.0.0.1:3308:3306 @@ -35,7 +34,6 @@ services: # この行がないと起動しない MYSQL_DATABASE: CharisWorks TZ: "Asia/Tokyo" - volumes: - - ./sql_init:/docker-entrypoint-initdb.d + volumes: data-volume: