From b313a2020d871e497a383d45563179c5086377fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sybren=20A=2E=20St=C3=BCvel?= Date: Fri, 12 Apr 2024 08:37:29 +0200 Subject: [PATCH] Refactor: Manager, move some test code into a function of its own Move some of the Worker Tags test code into a function of its own, to have a clearer separation between 'the test' and 'what needs to happen to do this part of the test'. Also it'll make an upcoming change easier to implement. No functional changes. --- .../manager/persistence/worker_tag_test.go | 35 ++++++++++--------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/internal/manager/persistence/worker_tag_test.go b/internal/manager/persistence/worker_tag_test.go index f4872cd6..609de145 100644 --- a/internal/manager/persistence/worker_tag_test.go +++ b/internal/manager/persistence/worker_tag_test.go @@ -3,6 +3,7 @@ package persistence // SPDX-License-Identifier: GPL-3.0-or-later import ( + "slices" "testing" "time" @@ -50,17 +51,7 @@ func TestFetchDeleteTags(t *testing.T) { } require.NoError(t, f.db.CreateWorkerTag(f.ctx, &secondTag)) - - allTags, err := f.db.FetchWorkerTags(f.ctx) - require.NoError(t, err) - - require.Len(t, allTags, 2) - var allTagIDs [2]string - for idx := range allTags { - allTagIDs[idx] = allTags[idx].UUID - } - assert.Contains(t, allTagIDs, f.tag.UUID) - assert.Contains(t, allTagIDs, secondTag.UUID) + assertTagsMatch(t, f, f.tag.UUID, secondTag.UUID) has, err = f.db.HasWorkerTags(f.ctx) require.NoError(t, err) @@ -68,11 +59,7 @@ func TestFetchDeleteTags(t *testing.T) { // Test deleting the 2nd tag. require.NoError(t, f.db.DeleteWorkerTag(f.ctx, secondTag.UUID)) - - allTags, err = f.db.FetchWorkerTags(f.ctx) - require.NoError(t, err) - require.Len(t, allTags, 1) - assert.Equal(t, f.tag.UUID, allTags[0].UUID) + assertTagsMatch(t, f, f.tag.UUID) // Test deleting the 1st tag. require.NoError(t, f.db.DeleteWorkerTag(f.ctx, f.tag.UUID)) @@ -163,3 +150,19 @@ func TestDeleteWorkerTagWithWorkersAssigned(t *testing.T) { require.NoError(t, err) assert.Empty(t, w.Tags) } + +func assertTagsMatch(t *testing.T, f WorkerTestFixture, expectUUIDs ...string) { + allTags, err := f.db.FetchWorkerTags(f.ctx) + require.NoError(t, err) + + require.Len(t, allTags, len(expectUUIDs)) + var actualUUIDs []string + for idx := range allTags { + actualUUIDs = append(actualUUIDs, allTags[idx].UUID) + } + + slices.Sort(expectUUIDs) + slices.Sort(actualUUIDs) + + assert.Equal(t, actualUUIDs, expectUUIDs) +}