|
4 | 4 | "context" |
5 | 5 | "database/sql" |
6 | 6 | "log/slog" |
7 | | - "sort" |
8 | 7 | "testing" |
9 | 8 | "time" |
10 | 9 |
|
@@ -96,11 +95,13 @@ func TestExtractSchema(t *testing.T) { |
96 | 95 | `) |
97 | 96 | require.NoError(t, err) |
98 | 97 |
|
99 | | - // Create source and extract schema |
100 | 98 | source := NewSourceFromDB(db) |
| 99 | + |
101 | 100 | actual, err := source.ExtractSchema(ctx) |
102 | 101 | require.NoError(t, err) |
103 | 102 |
|
| 103 | + actual.Sort() |
| 104 | + |
104 | 105 | expected := dberd.Schema{ |
105 | 106 | Tables: []dberd.Table{ |
106 | 107 | { |
@@ -178,23 +179,9 @@ func TestExtractSchema(t *testing.T) { |
178 | 179 | {Source: dberd.TableColumn{Table: "public.user_roles", Column: "user_id"}, Target: dberd.TableColumn{Table: "public.users", Column: "id"}}, |
179 | 180 | }, |
180 | 181 | } |
181 | | - for _, s := range []dberd.Schema{actual, expected} { |
182 | | - sort.Slice(s.Tables, func(i, j int) bool { |
183 | | - return s.Tables[i].Name < s.Tables[j].Name |
184 | | - }) |
185 | | - sort.Slice(s.References, func(i, j int) bool { |
186 | | - switch { |
187 | | - case s.References[i].Source.Table != s.References[j].Source.Table: |
188 | | - return s.References[i].Source.Table < s.References[j].Source.Table |
189 | | - case s.References[i].Source.Column != s.References[j].Source.Column: |
190 | | - return s.References[i].Source.Column < s.References[j].Source.Column |
191 | | - case s.References[i].Target.Table != s.References[j].Target.Table: |
192 | | - return s.References[i].Target.Table < s.References[j].Target.Table |
193 | | - default: |
194 | | - return s.References[i].Target.Column < s.References[j].Target.Column |
195 | | - } |
196 | | - }) |
197 | | - } |
| 182 | + |
| 183 | + expected.Sort() |
| 184 | + |
198 | 185 | assert.Equal(t, expected, actual) |
199 | 186 | } |
200 | 187 |
|
|
0 commit comments