Skip to content

Commit c847680

Browse files
committed
fix assessment server tests
1 parent d22bd47 commit c847680

File tree

5 files changed

+35
-17
lines changed

5 files changed

+35
-17
lines changed

servers/assessment/assessments/assessmentCompletion/router_test.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import (
1616
"github.com/stretchr/testify/suite"
1717

1818
dto "github.com/ls1intum/prompt2/servers/assessment/assessments/assessmentCompletion/assessmentCompletionDTO"
19+
"github.com/ls1intum/prompt2/servers/assessment/coursePhaseConfig"
1920
"github.com/ls1intum/prompt2/servers/assessment/testutils"
2021
)
2122

@@ -41,6 +42,9 @@ func (suite *AssessmentCompletionRouterTestSuite) SetupSuite() {
4142
}
4243
AssessmentCompletionServiceSingleton = &suite.service
4344

45+
// Initialize CoursePhaseConfigSingleton to prevent nil pointer dereference
46+
coursePhaseConfig.CoursePhaseConfigSingleton = coursePhaseConfig.NewCoursePhaseConfigService(*testDB.Queries, testDB.Conn)
47+
4448
suite.router = gin.Default()
4549
api := suite.router.Group("/api/course_phase/:coursePhaseID")
4650
testMiddleware := func(allowedRoles ...string) gin.HandlerFunc {

servers/assessment/assessments/assessmentCompletion/service_test.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import (
1111
"github.com/stretchr/testify/suite"
1212

1313
"github.com/ls1intum/prompt2/servers/assessment/assessments/assessmentCompletion/assessmentCompletionDTO"
14+
"github.com/ls1intum/prompt2/servers/assessment/coursePhaseConfig"
1415
"github.com/ls1intum/prompt2/servers/assessment/testutils"
1516
)
1617

@@ -34,6 +35,9 @@ func (suite *AssessmentCompletionServiceTestSuite) SetupSuite() {
3435
conn: testDB.Conn,
3536
}
3637
AssessmentCompletionServiceSingleton = &suite.service
38+
39+
// Initialize CoursePhaseConfigSingleton to prevent nil pointer dereference
40+
coursePhaseConfig.CoursePhaseConfigSingleton = coursePhaseConfig.NewCoursePhaseConfigService(*testDB.Queries, testDB.Conn)
3741
}
3842

3943
func (suite *AssessmentCompletionServiceTestSuite) TearDownSuite() {

servers/assessment/coursePhaseConfig/service.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,14 @@ type CoursePhaseConfigService struct {
1919

2020
var CoursePhaseConfigSingleton *CoursePhaseConfigService
2121

22+
// NewCoursePhaseConfigService creates a new CoursePhaseConfigService instance
23+
func NewCoursePhaseConfigService(queries db.Queries, conn *pgxpool.Pool) *CoursePhaseConfigService {
24+
return &CoursePhaseConfigService{
25+
queries: queries,
26+
conn: conn,
27+
}
28+
}
29+
2230
func UpdateCoursePhaseDeadline(ctx context.Context, coursePhaseID uuid.UUID, deadline time.Time) error {
2331
params := db.UpdateCoursePhaseDeadlineParams{
2432
Deadline: pgtype.Timestamptz{

servers/assessment/database_dumps/assessmentCompletions.sql

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -91,10 +91,11 @@ CREATE TABLE public.assessment_template (
9191
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
9292
);
9393

94-
CREATE TABLE public.assessment_template_course_phase (
94+
CREATE TABLE public.course_phase_config (
9595
assessment_template_id uuid NOT NULL,
9696
course_phase_id uuid PRIMARY KEY NOT NULL,
97-
FOREIGN KEY (assessment_template_id) references assessment_template (id) ON DELETE CASCADE
97+
deadline timestamp with time zone DEFAULT NULL,
98+
FOREIGN KEY (assessment_template_id) REFERENCES assessment_template (id) ON DELETE CASCADE
9899
);
99100

100101
CREATE TABLE public.category (
@@ -233,11 +234,11 @@ VALUES (
233234
INSERT INTO public.assessment_template (id, name, description)
234235
VALUES ('550e8400-e29b-41d4-a716-446655440000', 'Intro Course Assessment Template', 'This is the default assessment template.');
235236

236-
-- Insert some sample assessment_template_course_phase records
237-
INSERT INTO public.assessment_template_course_phase (assessment_template_id, course_phase_id)
237+
-- Insert some sample course_phase_config records
238+
INSERT INTO public.course_phase_config (assessment_template_id, course_phase_id)
238239
VALUES ('550e8400-e29b-41d4-a716-446655440000', '24461b6b-3c3a-4bc6-ba42-69eeb1514da9');
239240

240-
INSERT INTO public.assessment_template_course_phase (assessment_template_id, course_phase_id)
241+
INSERT INTO public.course_phase_config (assessment_template_id, course_phase_id)
241242
VALUES ('550e8400-e29b-41d4-a716-446655440000', '319f28d4-8877-400e-9450-d49077aae7fe');
242243

243244
INSERT INTO public.category
@@ -403,18 +404,18 @@ ADD CONSTRAINT schema_migrations_pkey PRIMARY KEY (version);
403404
-- Create the category_course_phase view
404405
CREATE VIEW category_course_phase AS
405406
SELECT c.id AS category_id,
406-
atcp.course_phase_id
407+
cpc.course_phase_id
407408
FROM category c
408-
INNER JOIN assessment_template_course_phase atcp
409-
ON c.assessment_template_id = atcp.assessment_template_id;
409+
INNER JOIN course_phase_config cpc
410+
ON c.assessment_template_id = cpc.assessment_template_id;
410411

411412
CREATE INDEX idx_assessment_completion_participation_phase ON public.assessment_completion USING btree (course_participation_id, course_phase_id);
412413

413414
ALTER TABLE ONLY public.category
414415
ADD CONSTRAINT category_assessment_template_id_fkey FOREIGN KEY (assessment_template_id) REFERENCES public.assessment_template (id) ON DELETE CASCADE;
415416

416-
ALTER TABLE ONLY public.assessment_template_course_phase
417-
ADD CONSTRAINT assessment_template_course_phase_template_fkey FOREIGN KEY (assessment_template_id) REFERENCES public.assessment_template (id) ON DELETE CASCADE;
417+
ALTER TABLE ONLY public.course_phase_config
418+
ADD CONSTRAINT course_phase_config_template_fkey FOREIGN KEY (assessment_template_id) REFERENCES public.assessment_template (id) ON DELETE CASCADE;
418419

419420
ALTER TABLE ONLY public.assessment
420421
ADD CONSTRAINT assessment_competency_id_fkey FOREIGN KEY (competency_id) REFERENCES public.competency(id) ON DELETE CASCADE;

servers/assessment/database_dumps/categories.sql

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -78,10 +78,11 @@ CREATE TABLE public.assessment_template (
7878
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
7979
);
8080

81-
CREATE TABLE public.assessment_template_course_phase (
81+
CREATE TABLE public.course_phase_config (
8282
assessment_template_id uuid NOT NULL,
8383
course_phase_id uuid PRIMARY KEY NOT NULL,
84-
FOREIGN KEY (assessment_template_id) references assessment_template (id) ON DELETE CASCADE
84+
deadline timestamp with time zone DEFAULT NULL,
85+
FOREIGN KEY (assessment_template_id) REFERENCES assessment_template (id) ON DELETE CASCADE
8586
);
8687

8788
CREATE TABLE public.competency (
@@ -104,8 +105,8 @@ CREATE TABLE public.schema_migrations (version bigint NOT NULL, dirty boolean NO
104105
INSERT INTO public.assessment_template (id, name, description)
105106
VALUES ('550e8400-e29b-41d4-a716-446655440000', 'Intro Course Assessment Template', 'This is the default assessment template.');
106107

107-
-- Insert some sample assessment_template_course_phase records
108-
INSERT INTO public.assessment_template_course_phase (assessment_template_id, course_phase_id)
108+
-- Insert some sample course_phase_config records
109+
INSERT INTO public.course_phase_config (assessment_template_id, course_phase_id)
109110
VALUES ('550e8400-e29b-41d4-a716-446655440000', '4179d58a-d00d-4fa7-94a5-397bc69fab02');
110111

111112
INSERT INTO public.category
@@ -253,10 +254,10 @@ ADD CONSTRAINT category_assessment_template_id_fkey FOREIGN KEY (assessment_temp
253254
-- Create the view
254255
CREATE VIEW category_course_phase AS
255256
SELECT c.id AS category_id,
256-
atcp.course_phase_id
257+
cpc.course_phase_id
257258
FROM category c
258-
INNER JOIN assessment_template_course_phase atcp
259-
ON c.assessment_template_id = atcp.assessment_template_id;
259+
INNER JOIN course_phase_config cpc
260+
ON c.assessment_template_id = cpc.assessment_template_id;
260261

261262
ALTER TABLE ONLY public.category
262263
ADD CONSTRAINT category_pkey PRIMARY KEY (id);

0 commit comments

Comments
 (0)