|
|
package task
|
|
|
|
|
|
import (
|
|
|
"github.com/go-pg/pg"
|
|
|
"gitlab.fjmaimaimai.com/linmadan/mmm-worth/pkg/domain"
|
|
|
"net/http"
|
|
|
"time"
|
|
|
|
|
|
"github.com/gavv/httpexpect"
|
|
|
"github.com/go-pg/pg"
|
|
|
. "github.com/onsi/ginkgo"
|
|
|
. "github.com/onsi/gomega"
|
|
|
pG "gitlab.fjmaimaimai.com/linmadan/mmm-worth/pkg/infrastructure/pg"
|
|
|
)
|
|
|
|
|
|
var _ = Describe("对任务进行竞标", func() {
|
|
|
var taskId int64
|
|
|
BeforeEach(func() {
|
|
|
_, err := pG.DB.QueryOne(
|
|
|
pg.Scan(&taskId),
|
|
|
"INSERT INTO tasks (task_id, company_id, task_name, task_type, sponsor, task_status, reference_resource, customer_value, task_nature, su_money, acceptance_standard, task_description, task_picture_urls, is_reward_take, rob_info, bid_info, participators, task_percentage, solve_report, solve_picture_urls, create_time, release_time) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) RETURNING id",
|
|
|
"testTaskId", "testCompanyId", "testTaskName", "testTaskType", "testSponsor", "testTaskStatus", "testReferenceResource", "testCustomerValue", "testTaskNature", "testSuMoney", "testAcceptanceStandard", "testTaskDescription", "testTaskPictureUrls", "testIsRewardTake", "testRobInfo", "testBidInfo", "testParticipators", "testTaskPercentage", "testSolveReport", "testSolvePictureUrls", "testCreateTime", "testReleaseTime")
|
|
|
Expect(err).NotTo(HaveOccurred())
|
|
|
})
|
|
|
Describe("对任务进行竞标", func() {
|
|
|
Context("", func() {
|
|
|
It("", func() {
|
|
|
Context("竞标人对已发布的竞标类型任务进行竞标", func() {
|
|
|
BeforeEach(func() {
|
|
|
dayAfter, _ := time.ParseDuration("72h")
|
|
|
_, err := pG.DB.QueryOne(
|
|
|
pg.Scan(),
|
|
|
"INSERT INTO tasks (id, company_id, task_name, task_type, sponsor, task_status, reference_resource, customer_value, task_nature, su_money, acceptance_standard, task_description, task_picture_urls, is_reward_take, participators, task_percentage, solve_report, solve_picture_urls, receiver_uid, create_time, release_time) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",
|
|
|
1, 101, "竞标任务1", 2, &domain.EmployeeInfo{
|
|
|
Uid: 2499036607974745088,
|
|
|
}, 2, "null", pg.Array([]string{"口感", "便利", "品牌", "售后服务"}), "面", 1000.00, "验收标准1", "任务描述1", pg.Array([]string{}), true, []*domain.EmployeeInfo{
|
|
|
{
|
|
|
Uid: 2499036607974745077,
|
|
|
},
|
|
|
{
|
|
|
Uid: 2499036607974745066,
|
|
|
},
|
|
|
}, "null", "", pg.Array([]string{}), 0, time.Now(), time.Now().Add(dayAfter))
|
|
|
Expect(err).NotTo(HaveOccurred())
|
|
|
_, err1 := pG.DB.QueryOne(
|
|
|
pg.Scan(),
|
|
|
"INSERT INTO employees (id, company_id, uid, employee_name, employee_account, su_money) VALUES (?, ?, ?, ?, ?, ?)",
|
|
|
1, 101, 2499036607974745088, "testEmployeeName", "testEmployeeAccount", 0)
|
|
|
Expect(err1).NotTo(HaveOccurred())
|
|
|
_, err2 := pG.DB.QueryOne(
|
|
|
pg.Scan(),
|
|
|
"INSERT INTO employees (id, company_id, uid, employee_name, employee_account, su_money) VALUES (?, ?, ?, ?, ?, ?)",
|
|
|
2, 101, 2499036607974745099, "testEmployeeName", "testEmployeeAccount", 0)
|
|
|
Expect(err2).NotTo(HaveOccurred())
|
|
|
_, err3 := pG.DB.QueryOne(
|
|
|
pg.Scan(),
|
|
|
"INSERT INTO bid_infos (task_id, bid_start_time, bid_end_time) VALUES (?, ?, ?)",
|
|
|
1, time.Date(2020, time.Month(4), 5, 8, 0, 0, 0, time.Now().Location()), time.Now().Add(dayAfter))
|
|
|
Expect(err3).NotTo(HaveOccurred())
|
|
|
_, err4 := pG.DB.QueryOne(
|
|
|
pg.Scan(),
|
|
|
"INSERT INTO bidder_infos (task_id) VALUES (?)",
|
|
|
1)
|
|
|
Expect(err4).NotTo(HaveOccurred())
|
|
|
})
|
|
|
It("竞标成功", func() {
|
|
|
httpExpect := httpexpect.New(GinkgoT(), server.URL)
|
|
|
body := map[string]interface{}{
|
|
|
"bidder": "int64",
|
|
|
"bidder": 2499036607974745099,
|
|
|
}
|
|
|
httpExpect.POST("/tasks/{taskId}/bid").
|
|
|
httpExpect.POST("/tasks/1/bid").
|
|
|
WithJSON(body).
|
|
|
Expect().
|
|
|
Status(http.StatusOK).
|
...
|
...
|
@@ -34,12 +65,21 @@ var _ = Describe("对任务进行竞标", func() { |
|
|
Object().
|
|
|
ContainsKey("code").ValueEqual("code", 0).
|
|
|
ContainsKey("msg").ValueEqual("msg", "ok").
|
|
|
ContainsKey("data").Value("data").Object()
|
|
|
ContainsKey("data").Value("data").Object().
|
|
|
ContainsKey("taskStatus").ValueEqual("taskStatus", 3).
|
|
|
ContainsKey("bidInfo").Value("bidInfo").Object().
|
|
|
ContainsKey("bidderInfos").Value("bidderInfos").Array().Length().Equal(2)
|
|
|
})
|
|
|
})
|
|
|
})
|
|
|
AfterEach(func() {
|
|
|
_, err := pG.DB.Exec("DELETE FROM tasks WHERE true")
|
|
|
Expect(err).NotTo(HaveOccurred())
|
|
|
_, err1 := pG.DB.Exec("DELETE FROM bid_infos WHERE true")
|
|
|
Expect(err1).NotTo(HaveOccurred())
|
|
|
_, err2 := pG.DB.Exec("DELETE FROM bidder_infos WHERE true")
|
|
|
Expect(err2).NotTo(HaveOccurred())
|
|
|
_, err3 := pG.DB.Exec("DELETE FROM employees WHERE true")
|
|
|
Expect(err3).NotTo(HaveOccurred())
|
|
|
})
|
|
|
}) |
...
|
...
|
|