@@ -24,7 +24,11 @@ func TestMain(m *testing.M) {
24
24
}
25
25
Database ()
26
26
27
- os .Exit (m .Run ())
27
+ log .Printf ("Before calling m.Run() !!!" )
28
+ ret := m .Run ()
29
+ log .Printf ("After calling m.Run() !!!" )
30
+ //os.Exit(m.Run())
31
+ os .Exit (ret )
28
32
}
29
33
30
34
func Database () {
@@ -53,35 +57,52 @@ func Database() {
53
57
fmt .Printf ("We are connected to the %s database\n " , TestDbDriver )
54
58
}
55
59
}
60
+ if TestDbDriver == "sqlite3" {
61
+ //DBURL := fmt.Sprintf("host=%s port=%s user=%s dbname=%s sslmode=disable password=%s", DbHost, DbPort, DbUser, DbName, DbPassword)
62
+ testDbName := os .Getenv ("TestDbName" )
63
+ server .DB , err = gorm .Open (TestDbDriver , testDbName )
64
+ if err != nil {
65
+ fmt .Printf ("Cannot connect to %s database\n " , TestDbDriver )
66
+ log .Fatal ("This is the error:" , err )
67
+ } else {
68
+ fmt .Printf ("We are connected to the %s database\n " , TestDbDriver )
69
+ }
70
+ server .DB .Exec ("PRAGMA foreign_keys = ON" )
71
+ }
72
+
56
73
}
57
74
58
75
func refreshUserTable () error {
59
- err := server .DB .DropTableIfExists (& models.User {}).Error
76
+ err := server .DB .Debug (). DropTableIfExists (& models.User {}).Error
60
77
if err != nil {
61
78
return err
62
79
}
63
- err = server .DB .AutoMigrate (& models.User {}).Error
80
+ err = server .DB .Debug (). AutoMigrate (& models.User {}).Error
64
81
if err != nil {
65
82
return err
66
83
}
84
+
67
85
log .Printf ("Successfully refreshed table" )
86
+ log .Printf ("refreshUserTable routine OK !!!" )
68
87
return nil
69
88
}
70
89
71
90
func seedOneUser () (models.User , error ) {
72
91
73
- refreshUserTable ()
92
+ _ = refreshUserTable ()
74
93
75
94
user := models.User {
76
95
Nickname : "Pet" ,
77
96
Email : "pet@gmail.com" ,
78
97
Password : "password" ,
79
98
}
80
99
81
- err := server .DB .Model (& models.User {}).Create (& user ).Error
100
+ err := server .DB .Debug (). Model (& models.User {}).Create (& user ).Error
82
101
if err != nil {
83
102
log .Fatalf ("cannot seed users table: %v" , err )
84
103
}
104
+
105
+ log .Printf ("seedOneUser routine OK !!!" )
85
106
return user , nil
86
107
}
87
108
@@ -100,26 +121,30 @@ func seedUsers() error {
100
121
},
101
122
}
102
123
103
- for i , _ := range users {
104
- err := server .DB .Model (& models.User {}).Create (& users [i ]).Error
124
+ for i := range users {
125
+ err := server .DB .Debug (). Model (& models.User {}).Create (& users [i ]).Error
105
126
if err != nil {
106
127
return err
107
128
}
108
129
}
130
+
131
+ log .Printf ("seedUsers routine OK !!!" )
109
132
return nil
110
133
}
111
134
112
135
func refreshUserAndPostTable () error {
113
136
114
- err := server .DB .DropTableIfExists (& models.User {}, & models.Post {}).Error
137
+ // NOTE: when deleting first delete Post as Post is depending on User table
138
+ err := server .DB .Debug ().DropTableIfExists (& models.Post {}, & models.User {}).Error
115
139
if err != nil {
116
140
return err
117
141
}
118
- err = server .DB .AutoMigrate (& models.User {}, & models.Post {}).Error
142
+ err = server .DB .Debug (). AutoMigrate (& models.User {}, & models.Post {}).Error
119
143
if err != nil {
120
144
return err
121
145
}
122
146
log .Printf ("Successfully refreshed tables" )
147
+ log .Printf ("refreshUserAndPostTable routine OK !!!" )
123
148
return nil
124
149
}
125
150
@@ -134,7 +159,7 @@ func seedOneUserAndOnePost() (models.Post, error) {
134
159
Email : "sam@gmail.com" ,
135
160
Password : "password" ,
136
161
}
137
- err = server .DB .Model (& models.User {}).Create (& user ).Error
162
+ err = server .DB .Debug (). Model (& models.User {}).Create (& user ).Error
138
163
if err != nil {
139
164
return models.Post {}, err
140
165
}
@@ -143,10 +168,12 @@ func seedOneUserAndOnePost() (models.Post, error) {
143
168
Content : "This is the content sam" ,
144
169
AuthorID : user .ID ,
145
170
}
146
- err = server .DB .Model (& models.Post {}).Create (& post ).Error
171
+ err = server .DB .Debug (). Model (& models.Post {}).Create (& post ).Error
147
172
if err != nil {
148
173
return models.Post {}, err
149
174
}
175
+
176
+ log .Printf ("seedOneUserAndOnePost routine OK !!!" )
150
177
return post , nil
151
178
}
152
179
@@ -180,17 +207,18 @@ func seedUsersAndPosts() ([]models.User, []models.Post, error) {
180
207
},
181
208
}
182
209
183
- for i , _ := range users {
184
- err = server .DB .Model (& models.User {}).Create (& users [i ]).Error
210
+ for i := range users {
211
+ err = server .DB .Debug (). Model (& models.User {}).Create (& users [i ]).Error
185
212
if err != nil {
186
213
log .Fatalf ("cannot seed users table: %v" , err )
187
214
}
188
215
posts [i ].AuthorID = users [i ].ID
189
216
190
- err = server .DB .Model (& models.Post {}).Create (& posts [i ]).Error
217
+ err = server .DB .Debug (). Model (& models.Post {}).Create (& posts [i ]).Error
191
218
if err != nil {
192
219
log .Fatalf ("cannot seed posts table: %v" , err )
193
220
}
194
221
}
222
+ log .Printf ("seedUsersAndPosts routine OK !!!" )
195
223
return users , posts , nil
196
224
}
0 commit comments