Skip to content

Commit

Permalink
tdd(users): add tests
Browse files Browse the repository at this point in the history
fixes: $12c
  • Loading branch information
Jaeiya committed May 22, 2024
1 parent db1c805 commit 58d0aca
Show file tree
Hide file tree
Showing 2 changed files with 77 additions and 0 deletions.
7 changes: 7 additions & 0 deletions internal/db/users.go
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,13 @@ func (u *Users) Update(userid string, isRed33m bool) error {
return nil
}

/*
Clean removes all user ids that are not logged in with a
red33m passcode.
🟡 This should not be hooked up to any public API on
the website.
*/
func (u *Users) Clean() (int, error) {
u.Lock()
if u.isClosed {
Expand Down
70 changes: 70 additions & 0 deletions internal/db/users_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
package db

import (
"os"
"testing"

"github.com/stretchr/testify/assert"
)

func TestUsers(t *testing.T) {
t.Parallel()
a := assert.New(t)

t.Run("Inits user txt file", func(*testing.T) {
dir := t.TempDir()

u, err := NewUsers(dir)
a.NoError(err, "should create new users dir")

b, err := os.ReadFile(dir + "/users.txt")
a.NoError(err, "should find users text file")
a.Equal(b, []byte{})

u.Close()
})

t.Run("adds user to users txt file", func(*testing.T) {
dir := t.TempDir()
u, err := NewUsers(dir)
a.NoError(err, "should create new users dir")

usrStr, err := u.Add(false)
a.NoError(err, "should add user")
a.Len(usrStr, 24, "should be a 24 char hash")
u.Close()
})

t.Run("sets & gets user state", func(*testing.T) {
dir := t.TempDir()
u, err := NewUsers(dir)
a.NoError(err, "should create new users dir")
defer u.Close()

usrStr, err := u.Add(false)
a.NoError(err, "should add user")
state, err := u.GetState(usrStr)
a.NoError(err, "should return state")
a.Equal(state, false, "user should NOT be red33med")

err = u.Update(usrStr, true)
a.NoError(err, "should update user state")
state, err = u.GetState(usrStr)
a.NoError(err, "should return state")
a.Equal(state, true, "user should be red33med")
})

t.Run("gets length of users", func(*testing.T) {
dir := t.TempDir()
u, err := NewUsers(dir)
a.NoError(err, "should create new users dir")
defer u.Close()

for range 10 {
_, err := u.Add(false)
a.NoError(err, "should add user")
}

a.Equal(u.GetLength(), 10, "there should be 10 users")
})
}

0 comments on commit 58d0aca

Please sign in to comment.