mirror of
https://github.com/coder/coder.git
synced 2026-09-24 15:04:27 +08:00
test(enterprise/coderd): deflake TestInvalidateTemplatePrebuilds (#26499)
`TestInvalidateTemplatePrebuilds` assumed a stable ordering from preset invalidation results, but the underlying `UPDATE ... RETURNING` query does not guarantee row order. Local WIP schema changes were enough to surface that latent flake when running tests. Update the test to compare invalidated presets as a set instead of by slice position. This keeps the behavior under test the same, while removing dependence on unspecified database row ordering.
This commit is contained in:
@@ -2301,8 +2301,10 @@ func TestInvalidateTemplatePrebuilds(t *testing.T) {
|
||||
|
||||
// Then
|
||||
require.Len(t, invalidated.Invalidated, 2)
|
||||
require.Equal(t, codersdk.InvalidatedPreset{TemplateName: template.Name, TemplateVersionName: version1.Name, PresetName: presetWithParameters1.Name}, invalidated.Invalidated[0])
|
||||
require.Equal(t, codersdk.InvalidatedPreset{TemplateName: template.Name, TemplateVersionName: version1.Name, PresetName: presetWithParameters2.Name}, invalidated.Invalidated[1])
|
||||
require.ElementsMatch(t, []codersdk.InvalidatedPreset{
|
||||
{TemplateName: template.Name, TemplateVersionName: version1.Name, PresetName: presetWithParameters1.Name},
|
||||
{TemplateName: template.Name, TemplateVersionName: version1.Name, PresetName: presetWithParameters2.Name},
|
||||
}, invalidated.Invalidated)
|
||||
|
||||
// Given the template is updated...
|
||||
version2 := coderdtest.UpdateTemplateVersion(t, templateAdminClient, owner.OrganizationID, &echo.Responses{
|
||||
@@ -2320,8 +2322,10 @@ func TestInvalidateTemplatePrebuilds(t *testing.T) {
|
||||
|
||||
// Then: it should only invalidate the presets from the currently active version (preset2 and preset3)
|
||||
require.Len(t, invalidated.Invalidated, 2)
|
||||
require.Equal(t, codersdk.InvalidatedPreset{TemplateName: template.Name, TemplateVersionName: version2.Name, PresetName: presetWithParameters2.Name}, invalidated.Invalidated[0])
|
||||
require.Equal(t, codersdk.InvalidatedPreset{TemplateName: template.Name, TemplateVersionName: version2.Name, PresetName: presetWithParameters3.Name}, invalidated.Invalidated[1])
|
||||
require.ElementsMatch(t, []codersdk.InvalidatedPreset{
|
||||
{TemplateName: template.Name, TemplateVersionName: version2.Name, PresetName: presetWithParameters2.Name},
|
||||
{TemplateName: template.Name, TemplateVersionName: version2.Name, PresetName: presetWithParameters3.Name},
|
||||
}, invalidated.Invalidated)
|
||||
}
|
||||
|
||||
func TestInvalidateTemplatePrebuilds_RegularUser(t *testing.T) {
|
||||
|
||||
Reference in New Issue
Block a user