Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fixing Go Pipeline #145

Draft
wants to merge 3 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .github/workflows/go-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@ jobs:
- name: Install dependencies
run: cd ${{ matrix.directory }} && go mod download
- name: Test with Go
env:
TESTCONTAINERS_RYUK_DISABLED: "true"
run: cd ${{ matrix.directory }} && go test ./... -json > TestResults-${{ matrix.directory }}.json
- name: Upload Go test results
if: always()
Expand Down
29 changes: 13 additions & 16 deletions server/applicationAdministration/router_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ import (
"bytes"
"context"
"encoding/json"
"log"
"net/http"
"net/http/httptest"
"testing"
Expand All @@ -25,26 +24,24 @@ import (
)

type ApplicationAdminRouterTestSuite struct {
suite.Suite
testutils.DatabaseSuite
router *gin.Engine
ctx context.Context
cleanup func()
applicationAdminService ApplicationService
}

func (suite *ApplicationAdminRouterTestSuite) SetupSuite() {
suite.ctx = context.Background()
suite.DatabaseSuite.SetupSuite()

// Set up PostgreSQL container
testDB, cleanup, err := testutils.SetupTestDB(suite.ctx, "../database_dumps/application_administration.sql")
if err != nil {
log.Fatalf("Failed to set up test database: %v", err)
}
err := testutils.RunSQLDump(suite.DatabaseSuite.Conn, "../database_dumps/application_administration.sql")
suite.Require().NoError(err)

queries := db.New(suite.DatabaseSuite.Conn)

suite.cleanup = cleanup
suite.applicationAdminService = ApplicationService{
queries: *testDB.Queries,
conn: testDB.Conn,
queries: *queries,
conn: suite.DatabaseSuite.Conn,
}

ApplicationServiceSingleton = &suite.applicationAdminService
Expand All @@ -54,14 +51,14 @@ func (suite *ApplicationAdminRouterTestSuite) SetupSuite() {
return testutils.MockAuthMiddlewareWithEmail([]string{"PROMPT_Admin", "iPraktikum-ios24245-Lecturer"}, "[email protected]", "03711111", "ab12cde")
}
setupApplicationRouter(api, testMiddleware, testMiddleware, testutils.MockPermissionMiddleware)
student.InitStudentModule(suite.router.Group("/api"), *testDB.Queries, testDB.Conn)
courseParticipation.InitCourseParticipationModule(suite.router.Group("/api"), *testDB.Queries, testDB.Conn)
coursePhaseParticipation.InitCoursePhaseParticipationModule(suite.router.Group("/api"), *testDB.Queries, testDB.Conn)
mailing.InitMailingModule(api, *testDB.Queries, testDB.Conn, "localhost", "25", "[email protected]", "Test-Email-Sender", "localhost")
student.InitStudentModule(suite.router.Group("/api"), *queries, suite.DatabaseSuite.Conn)
courseParticipation.InitCourseParticipationModule(suite.router.Group("/api"), *queries, suite.DatabaseSuite.Conn)
coursePhaseParticipation.InitCoursePhaseParticipationModule(suite.router.Group("/api"), *queries, suite.DatabaseSuite.Conn)
mailing.InitMailingModule(api, *queries, suite.DatabaseSuite.Conn, "localhost", "25", "[email protected]", "Test-Email-Sender", "localhost")
}

func (suite *ApplicationAdminRouterTestSuite) TearDownSuite() {
suite.cleanup()
suite.DatabaseSuite.TearDownSuite()
}

func (suite *ApplicationAdminRouterTestSuite) TestGetApplicationFormEndpoint_Success() {
Expand Down
30 changes: 14 additions & 16 deletions server/applicationAdministration/service_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ package applicationAdministration
import (
"context"
"encoding/json"
"log"
"math/big"
"testing"

Expand All @@ -24,39 +23,38 @@ import (
)

type ApplicationAdminServiceTestSuite struct {
suite.Suite
testutils.DatabaseSuite
router *gin.Engine
ctx context.Context
cleanup func()
applicationAdminService ApplicationService
}

func (suite *ApplicationAdminServiceTestSuite) SetupSuite() {
suite.ctx = context.Background()

// Set up PostgreSQL container
testDB, cleanup, err := testutils.SetupTestDB(suite.ctx, "../database_dumps/application_administration.sql")
if err != nil {
log.Fatalf("Failed to set up test database: %v", err)
}
suite.DatabaseSuite.SetupSuite()

err := testutils.RunSQLDump(suite.DatabaseSuite.Conn, "../database_dumps/application_administration.sql")
suite.Require().NoError(err)

queries := db.New(suite.DatabaseSuite.Conn)

suite.cleanup = cleanup
suite.applicationAdminService = ApplicationService{
queries: *testDB.Queries,
conn: testDB.Conn,
queries: *queries,
conn: suite.DatabaseSuite.Conn,
}

ApplicationServiceSingleton = &suite.applicationAdminService
suite.router = gin.Default()
student.InitStudentModule(suite.router.Group("/api"), *testDB.Queries, testDB.Conn)
coursePhase.InitCoursePhaseModule(suite.router.Group("/api"), *testDB.Queries, testDB.Conn)
courseParticipation.InitCourseParticipationModule(suite.router.Group("/api"), *testDB.Queries, testDB.Conn)
coursePhaseParticipation.InitCoursePhaseParticipationModule(suite.router.Group("/api"), *testDB.Queries, testDB.Conn)
student.InitStudentModule(suite.router.Group("/api"), *queries, suite.DatabaseSuite.Conn)
coursePhase.InitCoursePhaseModule(suite.router.Group("/api"), *queries, suite.DatabaseSuite.Conn)
courseParticipation.InitCourseParticipationModule(suite.router.Group("/api"), *queries, suite.DatabaseSuite.Conn)
coursePhaseParticipation.InitCoursePhaseParticipationModule(suite.router.Group("/api"), *queries, suite.DatabaseSuite.Conn)

}

func (suite *ApplicationAdminServiceTestSuite) TearDownSuite() {
suite.cleanup()
suite.DatabaseSuite.TearDownSuite()
}

func (suite *ApplicationAdminServiceTestSuite) TestGetApplicationForm_Success() {
Expand Down
21 changes: 9 additions & 12 deletions server/applicationAdministration/validation_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ package applicationAdministration
import (
"context"
"encoding/json"
"log"
"math/big"
"testing"

Expand All @@ -20,34 +19,32 @@ import (
)

type ApplicationAdminValidationTestSuite struct {
suite.Suite
testutils.DatabaseSuite
router *gin.Engine
ctx context.Context
cleanup func()
applicationAdminService ApplicationService
}

func (suite *ApplicationAdminValidationTestSuite) SetupSuite() {
suite.ctx = context.Background()
suite.DatabaseSuite.SetupSuite()

// Set up PostgreSQL container
testDB, cleanup, err := testutils.SetupTestDB(suite.ctx, "../database_dumps/application_administration.sql")
if err != nil {
log.Fatalf("Failed to set up test database: %v", err)
}
err := testutils.RunSQLDump(suite.DatabaseSuite.Conn, "../database_dumps/application_administration.sql")
suite.Require().NoError(err)

queries := db.New(suite.DatabaseSuite.Conn)

suite.cleanup = cleanup
suite.applicationAdminService = ApplicationService{
queries: *testDB.Queries,
conn: testDB.Conn,
queries: *queries,
conn: suite.DatabaseSuite.Conn,
}

ApplicationServiceSingleton = &suite.applicationAdminService
suite.router = gin.Default()
}

func (suite *ApplicationAdminValidationTestSuite) TearDownSuite() {
suite.cleanup()
suite.DatabaseSuite.TearDownSuite()
}

func (suite *ApplicationAdminValidationTestSuite) TestValidateUpdateForm_Success() {
Expand Down
22 changes: 10 additions & 12 deletions server/course/courseParticipation/router_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,48 +4,46 @@ import (
"bytes"
"context"
"encoding/json"
"log"
"net/http"
"net/http/httptest"
"testing"

"github.com/gin-gonic/gin"
"github.com/google/uuid"
"github.com/niclasheun/prompt2.0/course/courseParticipation/courseParticipationDTO"
db "github.com/niclasheun/prompt2.0/db/sqlc"
"github.com/niclasheun/prompt2.0/testutils"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/suite"
)

type RouterTestSuite struct {
suite.Suite
testutils.DatabaseSuite
router *gin.Engine
ctx context.Context
cleanup func()
courseParticipationService CourseParticipationService
}

func (suite *RouterTestSuite) SetupSuite() {
suite.ctx = context.Background()
suite.DatabaseSuite.SetupSuite()

// Set up PostgreSQL container
testDB, cleanup, err := testutils.SetupTestDB(suite.ctx, "../../database_dumps/course_participation_test.sql")
if err != nil {
log.Fatalf("Failed to set up test database: %v", err)
}
err := testutils.RunSQLDump(suite.DatabaseSuite.Conn, "../../database_dumps/course_participation_test.sql")
suite.Require().NoError(err)

queries := db.New(suite.DatabaseSuite.Conn)

suite.cleanup = cleanup
suite.courseParticipationService = CourseParticipationService{
queries: *testDB.Queries,
conn: testDB.Conn,
queries: *queries,
conn: suite.DatabaseSuite.Conn,
}
CourseParticipationServiceSingleton = &suite.courseParticipationService

suite.router = setupRouter()
}

func (suite *RouterTestSuite) TearDownSuite() {
suite.cleanup()
suite.DatabaseSuite.TearDownSuite()
}

func setupRouter() *gin.Engine {
Expand Down
21 changes: 10 additions & 11 deletions server/course/courseParticipation/service_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,38 +6,37 @@ import (

"github.com/google/uuid"
"github.com/niclasheun/prompt2.0/course/courseParticipation/courseParticipationDTO"
db "github.com/niclasheun/prompt2.0/db/sqlc"
"github.com/niclasheun/prompt2.0/testutils"
log "github.com/sirupsen/logrus"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/suite"
)

type CourseParticipationTestSuite struct {
suite.Suite
testutils.DatabaseSuite
ctx context.Context
cleanup func()
courseParticipationService CourseParticipationService
}

func (suite *CourseParticipationTestSuite) SetupSuite() {
suite.ctx = context.Background()
suite.DatabaseSuite.SetupSuite()

// Set up PostgreSQL container
testDB, cleanup, err := testutils.SetupTestDB(suite.ctx, "../../database_dumps/course_participation_test.sql")
if err != nil {
log.Fatalf("Failed to set up test database: %v", err)
}
err := testutils.RunSQLDump(suite.DatabaseSuite.Conn, "../../database_dumps/course_participation_test.sql")
suite.Require().NoError(err)

queries := db.New(suite.DatabaseSuite.Conn)

suite.cleanup = cleanup
suite.courseParticipationService = CourseParticipationService{
queries: *testDB.Queries,
conn: testDB.Conn,
queries: *queries,
conn: suite.DatabaseSuite.Conn,
}
CourseParticipationServiceSingleton = &suite.courseParticipationService
}

func (suite *CourseParticipationTestSuite) TearDownSuite() {
suite.cleanup()
suite.DatabaseSuite.TearDownSuite()
}

func (suite *CourseParticipationTestSuite) TestGetAllCourseParticipationsForCourse() {
Expand Down
25 changes: 12 additions & 13 deletions server/course/router_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import (
"github.com/niclasheun/prompt2.0/course/courseDTO"
"github.com/niclasheun/prompt2.0/coursePhase"
"github.com/niclasheun/prompt2.0/coursePhase/coursePhaseDTO"
db "github.com/niclasheun/prompt2.0/db/sqlc"
"github.com/niclasheun/prompt2.0/meta"
"github.com/niclasheun/prompt2.0/permissionValidation"
"github.com/niclasheun/prompt2.0/testutils"
Expand All @@ -23,21 +24,20 @@ import (
)

type CourseRouterTestSuite struct {
suite.Suite
testutils.DatabaseSuite
router *gin.Engine
ctx context.Context
cleanup func()
courseService CourseService
}

func (suite *CourseRouterTestSuite) SetupSuite() {
suite.ctx = context.Background()
suite.DatabaseSuite.SetupSuite()

// Set up PostgreSQL container
testDB, cleanup, err := testutils.SetupTestDB(suite.ctx, "../database_dumps/course_test.sql")
if err != nil {
suite.T().Fatalf("Failed to set up test database: %v", err)
}
err := testutils.RunSQLDump(suite.DatabaseSuite.Conn, "../database_dumps/course_test.sql")
suite.Require().NoError(err)

queries := db.New(suite.DatabaseSuite.Conn)

mockCreateGroupsAndRoles := func(ctx context.Context, courseName, iterationName string) error {
// No-op or add assertions for test
Expand All @@ -49,30 +49,29 @@ func (suite *CourseRouterTestSuite) SetupSuite() {
return nil
}

suite.cleanup = cleanup
suite.courseService = CourseService{
queries: *testDB.Queries,
conn: testDB.Conn,
queries: *queries,
conn: suite.DatabaseSuite.Conn,
createCourseGroupsAndRoles: mockCreateGroupsAndRoles,
addUserToGroup: mockAddUserToGroup,
}

CourseServiceSingleton = &suite.courseService

// Init the permissionValidation service
permissionValidation.InitValidationService(*testDB.Queries, testDB.Conn)
permissionValidation.InitValidationService(*queries, suite.DatabaseSuite.Conn)

// Initialize router
suite.router = gin.Default()
api := suite.router.Group("/api")
setupCourseRouter(api, func() gin.HandlerFunc {
return testutils.MockAuthMiddleware([]string{"PROMPT_Admin", "iPraktikum-ios24245-Lecturer"})
}, testutils.MockPermissionMiddleware, testutils.MockPermissionMiddleware)
coursePhase.InitCoursePhaseModule(api, *testDB.Queries, testDB.Conn)
coursePhase.InitCoursePhaseModule(api, *queries, suite.DatabaseSuite.Conn)
}

func (suite *CourseRouterTestSuite) TearDownSuite() {
suite.cleanup()
suite.DatabaseSuite.TearDownSuite()
}

func (suite *CourseRouterTestSuite) TestGetAllCourses() {
Expand Down
Loading
Loading