test(e2e): guard DeploymentFixture partial-init + teardown (review fixes)
This commit is contained in:
+19
-6
@@ -77,10 +77,22 @@ public sealed class DeploymentFixture : IAsyncLifetime
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
SiteAId = await CliRunner.ResolveSiteIdAsync(SiteAIdentifier);
|
try
|
||||||
TemplateId = await CliRunner.CreateTemplateAsync(CliRunner.UniqueName("deploytmpl"));
|
{
|
||||||
await CliRunner.AddAttributeAsync(TemplateId, "Value", "Double");
|
SiteAId = await CliRunner.ResolveSiteIdAsync(SiteAIdentifier);
|
||||||
AreaId = await CliRunner.CreateAreaAsync(SiteAId, CliRunner.UniqueName("area"));
|
TemplateId = await CliRunner.CreateTemplateAsync(CliRunner.UniqueName("deploytmpl"));
|
||||||
|
await CliRunner.AddAttributeAsync(TemplateId, "Value", "Double");
|
||||||
|
AreaId = await CliRunner.CreateAreaAsync(SiteAId, CliRunner.UniqueName("area"));
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
// Partial-init guard: best-effort cleanup of whatever was created before
|
||||||
|
// the failure; DeleteAreaAsync/DeleteTemplateAsync are no-ops for id 0.
|
||||||
|
await CliRunner.DeleteAreaAsync(AreaId);
|
||||||
|
await CliRunner.DeleteTemplateAsync(TemplateId);
|
||||||
|
Available = false;
|
||||||
|
throw;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -104,6 +116,7 @@ public sealed class DeploymentFixture : IAsyncLifetime
|
|||||||
public async Task<(int Id, string UniqueName)> CreateInstanceAsync()
|
public async Task<(int Id, string UniqueName)> CreateInstanceAsync()
|
||||||
{
|
{
|
||||||
var inv = System.Globalization.CultureInfo.InvariantCulture;
|
var inv = System.Globalization.CultureInfo.InvariantCulture;
|
||||||
|
// "inst" must match the InstanceNamePrefix ("zztest-inst-") used by the teardown sweep.
|
||||||
var name = CliRunner.UniqueName("inst");
|
var name = CliRunner.UniqueName("inst");
|
||||||
|
|
||||||
using var doc = await CliRunner.RunJsonAsync(
|
using var doc = await CliRunner.RunJsonAsync(
|
||||||
@@ -154,8 +167,8 @@ public sealed class DeploymentFixture : IAsyncLifetime
|
|||||||
// Best-effort teardown — never fail the suite on a cleanup hiccup.
|
// Best-effort teardown — never fail the suite on a cleanup hiccup.
|
||||||
}
|
}
|
||||||
|
|
||||||
await CliRunner.DeleteAreaAsync(AreaId);
|
try { await CliRunner.DeleteAreaAsync(AreaId); } catch { }
|
||||||
await CliRunner.DeleteTemplateAsync(TemplateId);
|
try { await CliRunner.DeleteTemplateAsync(TemplateId); } catch { }
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
Reference in New Issue
Block a user