Skip to content

Commit

Permalink
Merge pull request #1176 from traPtitech/fix/flaky-test-2
Browse files Browse the repository at this point in the history
Flakyなテストを修正 (2回目)
  • Loading branch information
cp-20 authored Jan 24, 2024
2 parents 044c9d9 + 4fada29 commit 7b3976e
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 16 deletions.
29 changes: 16 additions & 13 deletions model/questionnaires_impl.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ func NewQuestionnaire() *Questionnaire {
return new(Questionnaire)
}

//Questionnaires questionnairesテーブルの構造体
// Questionnaires questionnairesテーブルの構造体
type Questionnaires struct {
ID int `json:"questionnaireID" gorm:"type:int(11) AUTO_INCREMENT;not null;primaryKey"`
Title string `json:"title" gorm:"type:char(50);size:50;not null"`
Expand All @@ -44,28 +44,28 @@ func (questionnaire *Questionnaires) BeforeCreate(tx *gorm.DB) error {
return nil
}

//BeforeUpdate Update時に自動でmodified_atを現在時刻に
// BeforeUpdate Update時に自動でmodified_atを現在時刻に
func (questionnaire *Questionnaires) BeforeUpdate(tx *gorm.DB) error {
questionnaire.ModifiedAt = time.Now()

return nil
}

//QuestionnaireInfo Questionnaireにtargetかの情報追加
// QuestionnaireInfo Questionnaireにtargetかの情報追加
type QuestionnaireInfo struct {
Questionnaires
IsTargeted bool `json:"is_targeted" gorm:"type:boolean"`
}

//QuestionnaireDetail Questionnaireの詳細
// QuestionnaireDetail Questionnaireの詳細
type QuestionnaireDetail struct {
Targets []string
Respondents []string
Administrators []string
Questionnaires
}

//TargettedQuestionnaire targetになっているアンケートの情報
// TargettedQuestionnaire targetになっているアンケートの情報
type TargettedQuestionnaire struct {
Questionnaires
RespondedAt null.Time `json:"responded_at"`
Expand All @@ -78,7 +78,7 @@ type ResponseReadPrivilegeInfo struct {
IsRespondent bool
}

//InsertQuestionnaire アンケートの追加
// InsertQuestionnaire アンケートの追加
func (*Questionnaire) InsertQuestionnaire(ctx context.Context, title string, description string, resTimeLimit null.Time, resSharedTo string) (int, error) {
db, err := getTx(ctx)
if err != nil {
Expand Down Expand Up @@ -109,7 +109,7 @@ func (*Questionnaire) InsertQuestionnaire(ctx context.Context, title string, des
return questionnaire.ID, nil
}

//UpdateQuestionnaire アンケートの更新
// UpdateQuestionnaire アンケートの更新
func (*Questionnaire) UpdateQuestionnaire(ctx context.Context, title string, description string, resTimeLimit null.Time, resSharedTo string, questionnaireID int) error {
db, err := getTx(ctx)
if err != nil {
Expand Down Expand Up @@ -148,7 +148,7 @@ func (*Questionnaire) UpdateQuestionnaire(ctx context.Context, title string, des
return nil
}

//DeleteQuestionnaire アンケートの削除
// DeleteQuestionnaire アンケートの削除
func (*Questionnaire) DeleteQuestionnaire(ctx context.Context, questionnaireID int) error {
db, err := getTx(ctx)
if err != nil {
Expand All @@ -167,8 +167,10 @@ func (*Questionnaire) DeleteQuestionnaire(ctx context.Context, questionnaireID i
return nil
}

/*GetQuestionnaires アンケートの一覧
2つ目の戻り値はページ数の最大値*/
/*
GetQuestionnaires アンケートの一覧
2つ目の戻り値はページ数の最大値
*/
func (*Questionnaire) GetQuestionnaires(ctx context.Context, userID string, sort string, search string, pageNum int, nontargeted bool) ([]QuestionnaireInfo, int, error) {
ctx, cancel := context.WithTimeout(ctx, 3*time.Second)
defer cancel()
Expand All @@ -182,6 +184,7 @@ func (*Questionnaire) GetQuestionnaires(ctx context.Context, userID string, sort

query := db.
Table("questionnaires").
Where("deleted_at IS NULL").
Joins("LEFT OUTER JOIN targets ON questionnaires.id = targets.questionnaire_id")

query, err = setQuestionnairesOrder(query, sort)
Expand Down Expand Up @@ -263,7 +266,7 @@ func (*Questionnaire) GetAdminQuestionnaires(ctx context.Context, userID string)
return questionnaires, nil
}

//GetQuestionnaireInfo アンケートの詳細な情報取得
// GetQuestionnaireInfo アンケートの詳細な情報取得
func (*Questionnaire) GetQuestionnaireInfo(ctx context.Context, questionnaireID int) (*Questionnaires, []string, []string, []string, error) {
db, err := getTx(ctx)
if err != nil {
Expand Down Expand Up @@ -315,7 +318,7 @@ func (*Questionnaire) GetQuestionnaireInfo(ctx context.Context, questionnaireID
return &questionnaire, targets, administrators, respondents, nil
}

//GetTargettedQuestionnaires targetになっているアンケートの取得
// GetTargettedQuestionnaires targetになっているアンケートの取得
func (*Questionnaire) GetTargettedQuestionnaires(ctx context.Context, userID string, answered string, sort string) ([]TargettedQuestionnaire, error) {
db, err := getTx(ctx)
if err != nil {
Expand Down Expand Up @@ -359,7 +362,7 @@ func (*Questionnaire) GetTargettedQuestionnaires(ctx context.Context, userID str
return questionnaires, nil
}

//GetQuestionnaireLimit アンケートの回答期限の取得
// GetQuestionnaireLimit アンケートの回答期限の取得
func (*Questionnaire) GetQuestionnaireLimit(ctx context.Context, questionnaireID int) (null.Time, error) {
db, err := getTx(ctx)
if err != nil {
Expand Down
13 changes: 10 additions & 3 deletions model/questionnaires_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package model
import (
"context"
"errors"
"fmt"
"math"
"sort"
"strings"
Expand Down Expand Up @@ -346,7 +347,6 @@ func setupQuestionnairesTest(t *testing.T) {

func insertQuestionnaireTest(t *testing.T) {
t.Helper()
t.Parallel()

assertion := assert.New(t)

Expand Down Expand Up @@ -483,7 +483,6 @@ func insertQuestionnaireTest(t *testing.T) {

func updateQuestionnaireTest(t *testing.T) {
t.Helper()
t.Parallel()

assertion := assert.New(t)

Expand Down Expand Up @@ -740,7 +739,6 @@ func updateQuestionnaireTest(t *testing.T) {

func deleteQuestionnaireTest(t *testing.T) {
t.Helper()
t.Parallel()

assertion := assert.New(t)

Expand Down Expand Up @@ -1096,6 +1094,15 @@ func getQuestionnairesTest(t *testing.T) {
}

if len(testCase.args.search) == 0 && !testCase.args.nontargeted {
fmt.Println(testCase.description)
fmt.Println(questionnaireNum)
fmt.Println(pageMax)
var allNum int64
db.
Session(&gorm.Session{NewDB: true}).
Model(&Questionnaires{}).
Count(&allNum)
fmt.Println(allNum)
assertion.Equal((questionnaireNum+19)/20, int64(pageMax), testCase.description, "pageMax")
assertion.Len(questionnaires, int(math.Min(float64(questionnaireNum-20*(int64(testCase.pageNum)-1)), 20.0)), testCase.description, "page")
}
Expand Down

0 comments on commit 7b3976e

Please sign in to comment.