mirror of
https://github.com/Forceu/Gokapi.git
synced 2026-02-05 07:58:32 -06:00
Fixed error in redis, that prevented saving file requests, added tests
This commit is contained in:
@@ -353,6 +353,88 @@ func TestHotlink(t *testing.T) {
|
||||
test.IsEqualInt(t, len(hotlinks), 3)
|
||||
}
|
||||
|
||||
func TestFileRequest(t *testing.T) {
|
||||
instance, err := New(config)
|
||||
test.IsNil(t, err)
|
||||
dbInstance = instance
|
||||
|
||||
newUser := models.User{
|
||||
Id: 45564,
|
||||
Name: "test user",
|
||||
}
|
||||
dbInstance.SaveUser(newUser, false)
|
||||
|
||||
// Create first file request
|
||||
req1 := models.FileRequest{
|
||||
Id: "req1",
|
||||
Name: "New file request",
|
||||
UserId: 45564,
|
||||
CreationDate: time.Now().Unix(),
|
||||
}
|
||||
dbInstance.SaveFileRequest(req1)
|
||||
|
||||
// Get existing file request
|
||||
request, ok := dbInstance.GetFileRequest("req1")
|
||||
test.IsEqualBool(t, ok, true)
|
||||
test.IsEqualString(t, request.Id, "req1")
|
||||
test.IsEqualString(t, request.Name, "New file request")
|
||||
|
||||
// Get invalid file request
|
||||
_, ok = dbInstance.GetFileRequest("invalid")
|
||||
test.IsEqualBool(t, ok, false)
|
||||
|
||||
// Empty ID should return false
|
||||
_, ok = dbInstance.GetFileRequest("")
|
||||
test.IsEqualBool(t, ok, false)
|
||||
|
||||
// Delete invalid request (should not panic or affect data)
|
||||
dbInstance.DeleteFileRequest(models.FileRequest{Id: "invalid"})
|
||||
_, ok = dbInstance.GetFileRequest("req1")
|
||||
test.IsEqualBool(t, ok, true)
|
||||
|
||||
// Delete valid request
|
||||
dbInstance.DeleteFileRequest(req1)
|
||||
_, ok = dbInstance.GetFileRequest("req1")
|
||||
test.IsEqualBool(t, ok, false)
|
||||
|
||||
// Create multiple file requests to test GetAllFileRequests
|
||||
req2 := models.FileRequest{
|
||||
Id: "req2",
|
||||
Name: "file2.txt",
|
||||
UserId: 45564,
|
||||
CreationDate: time.Now().Add(time.Minute).Unix(),
|
||||
}
|
||||
req3 := models.FileRequest{
|
||||
Id: "req3",
|
||||
Name: "file3.txt",
|
||||
UserId: 45564,
|
||||
CreationDate: time.Now().Add(2 * time.Minute).Unix(),
|
||||
}
|
||||
|
||||
dbInstance.SaveFileRequest(req1)
|
||||
dbInstance.SaveFileRequest(req2)
|
||||
dbInstance.SaveFileRequest(req3)
|
||||
|
||||
requests := dbInstance.GetAllFileRequests()
|
||||
test.IsEqualInt(t, len(requests), 3)
|
||||
|
||||
ids := []string{
|
||||
requests[0].Id,
|
||||
requests[1].Id,
|
||||
requests[2].Id,
|
||||
}
|
||||
|
||||
test.IsEqualBool(t, slices.Contains(ids, "req1"), true)
|
||||
test.IsEqualBool(t, slices.Contains(ids, "req2"), true)
|
||||
test.IsEqualBool(t, slices.Contains(ids, "req3"), true)
|
||||
|
||||
// Ensure sorting by CreationDate DESC
|
||||
test.IsEqualBool(t, requests[0].CreationDate >= requests[1].CreationDate, true)
|
||||
test.IsEqualBool(t, requests[1].CreationDate >= requests[2].CreationDate, true)
|
||||
|
||||
dbInstance.DeleteUser(45564)
|
||||
}
|
||||
|
||||
func TestSession(t *testing.T) {
|
||||
renewAt := time.Now().Add(1 * time.Hour).Unix()
|
||||
dbInstance.SaveSession("newsession", models.Session{
|
||||
|
||||
@@ -60,7 +60,7 @@ func sortFilerequests(users []models.FileRequest) []models.FileRequest {
|
||||
|
||||
// SaveFileRequest stores the file request associated with the file in the database
|
||||
func (p DatabaseProvider) SaveFileRequest(request models.FileRequest) {
|
||||
p.setHashMap(p.buildArgs(prefixUsers + request.Id).AddFlat(request))
|
||||
p.setHashMap(p.buildArgs(prefixFileRequests + request.Id).AddFlat(request))
|
||||
}
|
||||
|
||||
// DeleteFileRequest deletes a file request with the given ID
|
||||
|
||||
@@ -327,6 +327,80 @@ func TestSession(t *testing.T) {
|
||||
test.IsEqualBool(t, ok, true)
|
||||
}
|
||||
|
||||
func TestFileRequest(t *testing.T) {
|
||||
// Create first file request
|
||||
req1 := models.FileRequest{
|
||||
Id: "req1",
|
||||
Name: "New file request",
|
||||
UserId: 45564,
|
||||
ApiKey: "123",
|
||||
CreationDate: time.Now().Unix(),
|
||||
}
|
||||
dbInstance.SaveFileRequest(req1)
|
||||
|
||||
// Get existing file request
|
||||
request, ok := dbInstance.GetFileRequest("req1")
|
||||
test.IsEqualBool(t, ok, true)
|
||||
test.IsEqualString(t, request.Id, "req1")
|
||||
test.IsEqualString(t, request.Name, "New file request")
|
||||
|
||||
// Get invalid file request
|
||||
_, ok = dbInstance.GetFileRequest("invalid")
|
||||
test.IsEqualBool(t, ok, false)
|
||||
|
||||
// Empty ID should return false
|
||||
_, ok = dbInstance.GetFileRequest("")
|
||||
test.IsEqualBool(t, ok, false)
|
||||
|
||||
// Delete invalid request (should not panic or affect data)
|
||||
dbInstance.DeleteFileRequest(models.FileRequest{Id: "invalid"})
|
||||
_, ok = dbInstance.GetFileRequest("req1")
|
||||
test.IsEqualBool(t, ok, true)
|
||||
|
||||
// Delete valid request
|
||||
dbInstance.DeleteFileRequest(req1)
|
||||
_, ok = dbInstance.GetFileRequest("req1")
|
||||
test.IsEqualBool(t, ok, false)
|
||||
|
||||
// Create multiple file requests to test GetAllFileRequests
|
||||
req2 := models.FileRequest{
|
||||
Id: "req2",
|
||||
UserId: 45564,
|
||||
Name: "file2.txt",
|
||||
ApiKey: "456",
|
||||
CreationDate: time.Now().Add(-time.Minute).Unix(),
|
||||
}
|
||||
req3 := models.FileRequest{
|
||||
Id: "req3",
|
||||
Name: "file3.txt",
|
||||
UserId: 45564,
|
||||
ApiKey: "789",
|
||||
CreationDate: time.Now().Add(-2 * time.Minute).Unix(),
|
||||
}
|
||||
|
||||
dbInstance.SaveFileRequest(req1)
|
||||
dbInstance.SaveFileRequest(req2)
|
||||
dbInstance.SaveFileRequest(req3)
|
||||
|
||||
requests := dbInstance.GetAllFileRequests()
|
||||
test.IsEqualInt(t, len(requests), 3)
|
||||
|
||||
ids := []string{
|
||||
requests[0].Id,
|
||||
requests[1].Id,
|
||||
requests[2].Id,
|
||||
}
|
||||
|
||||
test.IsEqualBool(t, slices.Contains(ids, "req1"), true)
|
||||
test.IsEqualBool(t, slices.Contains(ids, "req2"), true)
|
||||
test.IsEqualBool(t, slices.Contains(ids, "req3"), true)
|
||||
|
||||
// Ensure sorting by CreationDate DESC
|
||||
test.IsEqualBool(t, requests[0].CreationDate >= requests[1].CreationDate, true)
|
||||
test.IsEqualBool(t, requests[1].CreationDate >= requests[2].CreationDate, true)
|
||||
|
||||
}
|
||||
|
||||
func TestGarbageCollectionSessions(t *testing.T) {
|
||||
dbInstance.SaveSession("todelete1", models.Session{
|
||||
RenewAt: time.Now().Add(-10 * time.Second).Unix(),
|
||||
|
||||
Reference in New Issue
Block a user