list_company_test.go 2.2 KB
package company

import (
	"fmt"
	"github.com/go-pg/pg/v10"
	"gitlab.fjmaimaimai.com/mmm-go-pp/partner01/pkg/domain"
	"net/http"
	"time"

	"github.com/gavv/httpexpect"
	. "github.com/onsi/ginkgo"
	. "github.com/onsi/gomega"
	pG "gitlab.fjmaimaimai.com/mmm-go-pp/partner01/pkg/infrastructure/pg"
)

var _ = Describe("返回列表", func() {
	var companyId int64
	BeforeEach(func() {
		newCompany := &domain.Company{
			CompanyId:GinkgoRandomSeed(),
			CompanyInfo: &domain.CompanyInfo{
				Name:         "公司名称",         // 公司名称
				Abbreviation: "公司简称", // 公司简称
				Logo:         "",                                // 公司logo
				Phone:        "",                                // 公司联系电话
				Status:       1,       // 状态 1正常 2禁用
				Remarks:      "备注",      // 备注
				Enable:       1,                                 // 是否有效【1:有效】【2:无效】
				Admin: &domain.CompanyAdmin{
					UserAccount: fmt.Sprint(GinkgoRandomSeed()), // 用户手机号
					UserName:    "用户名称",         // 用户名称
				},                                               // 公司主管理员
			},
			CreateAt: time.Now(),
			UpdateAt: time.Now(),
		}

		_, err := pG.DB.QueryOne(
			pg.Scan(&companyId),
			"INSERT INTO companies (company_id, company_info, create_at, update_at) VALUES (?, ?, ?, ?) RETURNING company_id",
			newCompany.CompanyId, newCompany.CompanyInfo, newCompany.CreateAt, newCompany.UpdateAt)

		Expect(err).NotTo(HaveOccurred())
	})
	Describe("根据参数返回公司信息列表", func() {
		Context("传入有效的参数", func() {
			It("返回公司信息数据列表", func() {
				httpExpect := httpexpect.New(GinkgoT(), server.URL)
				httpExpect.GET("/companies/").
					WithQuery("offset", 1).
					WithQuery("limit", 1).
					Expect().
					Status(http.StatusOK).
					JSON().
					Object().
					ContainsKey("code").ValueEqual("code", 0).
					ContainsKey("msg").ValueEqual("msg", "ok").
					ContainsKey("data").Value("data").Object().
					ContainsKey("count").ValueEqual("count", 1).
					ContainsKey("companies").Value("companies").Array()
			})
		})
	})
	AfterEach(func() {
		_, err := pG.DB.Exec("DELETE FROM companies WHERE true")
		Expect(err).NotTo(HaveOccurred())
	})
})