Skip to content

Commit

Permalink
fix tests: no more orphaned actions
Browse files Browse the repository at this point in the history
  • Loading branch information
mipyykko committed May 25, 2023
1 parent e1da66b commit 22a1285
Show file tree
Hide file tree
Showing 2 changed files with 1 addition and 141 deletions.
27 changes: 1 addition & 26 deletions backend/bin/kafkaConsumer/common/__test__/userFunctions.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ import {
getExerciseCompletionsForCourses,
getUserCourseSettings,
pruneDuplicateExerciseCompletions,
pruneOrphanedExerciseCompletionRequiredActions,
} from "../userFunctions"

const ctx = getTestContext()
Expand Down Expand Up @@ -569,6 +568,7 @@ describe("exercise completion utilities", () => {
}),
)
}

Object.assign(context, {
prisma: ctx.prisma,
knex: ctx.knex,
Expand Down Expand Up @@ -683,29 +683,4 @@ describe("exercise completion utilities", () => {
})
})
})

describe("pruneOrphanedExerciseCompletionRequiredActions", () => {
it("should prune orphaned actions", async () => {
const beforeActionCount =
await ctx.prisma.exerciseCompletionRequiredAction.count()
const existingIds = (
exerciseCompletions[2].exercise_completion_required_actions ?? []
)
.map(({ id }) => id)
.sort()
await ctx.prisma.exerciseCompletion.delete({
where: {
id: exerciseCompletions[2].id,
},
})
const result = await pruneOrphanedExerciseCompletionRequiredActions({
context,
})
const afterCount =
await ctx.prisma.exerciseCompletionRequiredAction.count()
expect(result.length).toBe(2)
expect(result.map(({ id }) => id).sort()).toEqual(existingIds)
expect(afterCount).toEqual(beforeActionCount - 2)
})
})
})
115 changes: 0 additions & 115 deletions backend/bin/kafkaConsumer/common/userPoints/__test__/saveToDB.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -308,120 +308,5 @@ describe("userPoints/saveToDatabase", () => {
.every((id) => id === updated[0].id),
).toBe(true)
})

/* it.only("moves orphaned actions from other completions with same timestamp", async () => {
const duplicateCompletions: Array<Prisma.ExerciseCompletionCreateInput> =
[
{
id: "11111111-0000-0000-0000-000000000001",
timestamp: "2022-01-01T10:00:00.00+02:00",
updated_at: "2022-02-01T10:00:00.00+02:00",
user: { connect: { id: "20000000000000000000000000000106" } },
exercise: {
connect: { id: "50000000-0000-0000-0000-000000000003" },
},
exercise_completion_required_actions: {
create: [
{
value: "test1",
},
{
value: "test2",
},
],
},
},
{
id: "11111111-0000-0000-0000-000000000002",
timestamp: "2022-01-01T10:00:00.00+02:00",
updated_at: "2022-01-01T10:00:00.00+02:00",
user: { connect: { id: "20000000000000000000000000000106" } },
exercise: {
connect: { id: "50000000-0000-0000-0000-000000000003" },
},
exercise_completion_required_actions: {
create: [
{
value: "test3",
},
],
},
},
{
id: "11111111-0000-0000-0000-000000000003",
timestamp: "2021-01-01T10:00:00.00+02:00",
updated_at: "2021-01-01T10:00:00.00+02:00",
user: { connect: { id: "20000000000000000000000000000106" } },
exercise: {
connect: { id: "50000000-0000-0000-0000-000000000003" },
},
exercise_completion_required_actions: {
create: [
{
value: "should-not-be-included",
},
],
},
},
]
const created: Array<ExerciseCompletion> = []
for (const data of duplicateCompletions) {
created.push(
await ctx.prisma.exerciseCompletion.create({
data,
include: {
exercise_completion_required_actions: true,
},
}),
)
}
const ret = await saveToDatabase(kafkaContext, {
user_id: 5,
exercise_id: "customid3",
course_id: "00000000000000000000000000000002",
n_points: 1,
completed: false,
message_format_version: 1,
required_actions: ["test1", "test2", "test3"],
service_id: "40000000-0000-0000-0000-000000000102",
attempted: true,
original_submission_date: "2022-01-01T10:00:00.00+02:00",
timestamp: "2022-03-01T10:00:00.00+02:00",
})
if (!ret.isOk()) {
fail()
}
expect(ret.value).toContain("success")
const updated = orderBy(
await ctx.prisma.exerciseCompletion.findMany({
where: {
id: { in: created.map((c) => c.id) },
},
include: {
exercise_completion_required_actions: true,
},
}),
"id",
)
console.log(
JSON.stringify(created, null, 2),
JSON.stringify(updated, null, 2),
)
expect(updated[0].updated_at! > created[0].updated_at!).toBeTruthy()
expect(updated[1].updated_at).toEqual(created[1].updated_at)
expect(updated[2].updated_at).toEqual(created[2].updated_at)
const actions = updated[0].exercise_completion_required_actions
.map((ra) => ra.value)
.sort()
expect(actions.length).toBe(3)
expect(actions).toEqual(["test1", "test2", "test3"])
expect(updated[2].exercise_completion_required_actions.length).toBe(0)
}) */
})
})

0 comments on commit 22a1285

Please sign in to comment.