Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
canifa_note
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Vũ Hoàng Anh
canifa_note
Commits
0baf6b0e
Unverified
Commit
0baf6b0e
authored
Apr 01, 2023
by
boojack
Committed by
GitHub
Apr 01, 2023
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: add test for user store (#1438)
parent
0cddb358
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
101 additions
and
8 deletions
+101
-8
memos.go
cmd/memos.go
+2
-3
setup_test.go
setup/setup_test.go
+5
-5
store.go
test/store/store.go
+25
-0
user_test.go
test/store/user_test.go
+47
-0
test.go
test/test.go
+22
-0
No files found.
cmd/memos.go
View file @
0baf6b0e
...
...
@@ -99,9 +99,8 @@ var (
return
}
st
:=
store
.
New
(
db
.
DBInstance
,
profile
)
if
err
:=
setup
.
Execute
(
ctx
,
st
,
hostUsername
,
hostPassword
);
err
!=
nil
{
store
:=
store
.
New
(
db
.
DBInstance
,
profile
)
if
err
:=
setup
.
Execute
(
ctx
,
store
,
hostUsername
,
hostPassword
);
err
!=
nil
{
fmt
.
Printf
(
"failed to setup, error: %+v
\n
"
,
err
)
return
}
...
...
setup/setup_test.go
View file @
0baf6b0e
...
...
@@ -11,7 +11,7 @@ import (
"github.com/usememos/memos/api"
)
func
TestSetupService
_m
akeSureHostUserNotExists
(
t
*
testing
.
T
)
{
func
TestSetupService
M
akeSureHostUserNotExists
(
t
*
testing
.
T
)
{
cc
:=
map
[
string
]
struct
{
setupStore
func
(
*
storeMock
)
expectedErr
string
...
...
@@ -71,7 +71,7 @@ func TestSetupService_makeSureHostUserNotExists(t *testing.T) {
}
}
func
TestSetupService
_c
reateUser
(
t
*
testing
.
T
)
{
func
TestSetupService
C
reateUser
(
t
*
testing
.
T
)
{
expectedCreated
:=
&
api
.
UserCreate
{
Username
:
"demohero"
,
Role
:
api
.
Host
,
...
...
@@ -150,13 +150,13 @@ type storeMock struct {
func
(
m
*
storeMock
)
FindUserList
(
ctx
context
.
Context
,
find
*
api
.
UserFind
)
([]
*
api
.
User
,
error
)
{
ret
:=
m
.
Called
(
ctx
,
find
)
var
u
u
[]
*
api
.
User
var
u
[]
*
api
.
User
ret1
:=
ret
.
Get
(
0
)
if
ret1
!=
nil
{
u
u
=
ret1
.
([]
*
api
.
User
)
u
=
ret1
.
([]
*
api
.
User
)
}
return
u
u
,
ret
.
Error
(
1
)
return
u
,
ret
.
Error
(
1
)
}
func
(
m
*
storeMock
)
CreateUser
(
ctx
context
.
Context
,
create
*
api
.
UserCreate
)
(
*
api
.
User
,
error
)
{
...
...
test/store/store.go
0 → 100644
View file @
0baf6b0e
package
store_test
import
(
"context"
"fmt"
"testing"
"github.com/usememos/memos/store"
"github.com/usememos/memos/store/db"
"github.com/usememos/memos/test"
// sqlite3 driver.
_
"github.com/mattn/go-sqlite3"
)
func
NewTestingStore
(
ctx
context
.
Context
,
t
*
testing
.
T
)
*
store
.
Store
{
profile
:=
test
.
GetTestingProfile
(
t
)
db
:=
db
.
NewDB
(
profile
)
if
err
:=
db
.
Open
(
ctx
);
err
!=
nil
{
fmt
.
Printf
(
"failed to open db, error: %+v
\n
"
,
err
)
}
store
:=
store
.
New
(
db
.
DBInstance
,
profile
)
return
store
}
test/store/user_test.go
0 → 100644
View file @
0baf6b0e
package
store_test
import
(
"context"
"testing"
"github.com/stretchr/testify/require"
"github.com/usememos/memos/api"
"golang.org/x/crypto/bcrypt"
)
func
TestUserStore
(
t
*
testing
.
T
)
{
ctx
:=
context
.
Background
()
store
:=
NewTestingStore
(
ctx
,
t
)
userCreate
:=
&
api
.
UserCreate
{
Username
:
"test"
,
Role
:
api
.
Host
,
Email
:
"test@test.com"
,
Nickname
:
"test_nickname"
,
Password
:
"test_password"
,
OpenID
:
"test_open_id"
,
}
passwordHash
,
err
:=
bcrypt
.
GenerateFromPassword
([]
byte
(
userCreate
.
Password
),
bcrypt
.
DefaultCost
)
require
.
NoError
(
t
,
err
)
userCreate
.
PasswordHash
=
string
(
passwordHash
)
user
,
err
:=
store
.
CreateUser
(
ctx
,
userCreate
)
require
.
NoError
(
t
,
err
)
users
,
err
:=
store
.
FindUserList
(
ctx
,
&
api
.
UserFind
{})
require
.
NoError
(
t
,
err
)
require
.
Equal
(
t
,
1
,
len
(
users
))
require
.
Equal
(
t
,
user
,
users
[
0
])
userPatchNickname
:=
"test_nickname_2"
userPatch
:=
&
api
.
UserPatch
{
ID
:
user
.
ID
,
Nickname
:
&
userPatchNickname
,
}
user
,
err
=
store
.
PatchUser
(
ctx
,
userPatch
)
require
.
NoError
(
t
,
err
)
require
.
Equal
(
t
,
userPatchNickname
,
user
.
Nickname
)
err
=
store
.
DeleteUser
(
ctx
,
&
api
.
UserDelete
{
ID
:
user
.
ID
,
})
require
.
NoError
(
t
,
err
)
users
,
err
=
store
.
FindUserList
(
ctx
,
&
api
.
UserFind
{})
require
.
NoError
(
t
,
err
)
require
.
Equal
(
t
,
0
,
len
(
users
))
}
test/test.go
0 → 100644
View file @
0baf6b0e
package
test
import
(
"fmt"
"testing"
"github.com/usememos/memos/server/profile"
"github.com/usememos/memos/server/version"
)
func
GetTestingProfile
(
t
*
testing
.
T
)
*
profile
.
Profile
{
// Get a temporary directory for the test data.
dir
:=
t
.
TempDir
()
mode
:=
"prod"
return
&
profile
.
Profile
{
Mode
:
mode
,
Port
:
8082
,
Data
:
dir
,
DSN
:
fmt
.
Sprintf
(
"%s/memos_%s.db"
,
dir
,
mode
),
Version
:
version
.
GetCurrentVersion
(
mode
),
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment