mirror of
https://github.com/wabbajack-tools/wabbajack.git
synced 2024-08-30 18:42:17 +00:00
Tests for list auto-healing
This commit is contained in:
parent
7d58dbc161
commit
78b09df334
@ -101,6 +101,58 @@ namespace Wabbajack.BuildServer.Test
|
||||
|
||||
await CheckListFeeds(0, 1);
|
||||
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task CanHealLists()
|
||||
{
|
||||
var modlists = await MakeModList();
|
||||
Consts.ModlistMetadataURL = modlists.ToString();
|
||||
Utils.Log("Updating modlists");
|
||||
await RevalidateLists(true);
|
||||
|
||||
Utils.Log("Checking validated results");
|
||||
var data = (await ModlistMetadata.LoadFromGithub()).FirstOrDefault(l => l.Links.MachineURL == "test_list");
|
||||
Assert.NotNull(data);
|
||||
Assert.Equal(0, data.ValidationSummary.Failed);
|
||||
Assert.Equal(1, data.ValidationSummary.Passed);
|
||||
|
||||
await CheckListFeeds(0, 1);
|
||||
|
||||
Utils.Log("Break List by changing the file");
|
||||
var archive = "test_archive.txt".RelativeTo(Fixture.ServerPublicFolder);
|
||||
await archive.WriteAllTextAsync("broken");
|
||||
|
||||
// We can revalidate but the non-nexus archives won't be checked yet since the list didn't change
|
||||
await RevalidateLists(false);
|
||||
|
||||
data = (await ModlistMetadata.LoadFromGithub()).FirstOrDefault(l => l.Links.MachineURL == "test_list");
|
||||
Assert.NotNull(data);
|
||||
Assert.Equal(0, data.ValidationSummary.Failed);
|
||||
Assert.Equal(1, data.ValidationSummary.Passed);
|
||||
|
||||
// Run the non-nexus validator
|
||||
await RevalidateLists(true);
|
||||
|
||||
data = (await ModlistMetadata.LoadFromGithub()).FirstOrDefault(l => l.Links.MachineURL == "test_list");
|
||||
Assert.NotNull(data);
|
||||
Assert.Equal(0, data.ValidationSummary.Failed);
|
||||
Assert.Equal(0, data.ValidationSummary.Passed);
|
||||
Assert.Equal(1, data.ValidationSummary.Updating);
|
||||
|
||||
var patcher = Fixture.GetService<PatchBuilder>();
|
||||
Assert.Equal(1, await patcher.Execute());
|
||||
|
||||
await RevalidateLists(false);
|
||||
|
||||
data = (await ModlistMetadata.LoadFromGithub()).FirstOrDefault(l => l.Links.MachineURL == "test_list");
|
||||
Assert.NotNull(data);
|
||||
Assert.Equal(0, data.ValidationSummary.Failed);
|
||||
Assert.Equal(1, data.ValidationSummary.Passed);
|
||||
Assert.Equal(0, data.ValidationSummary.Updating);
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
private async Task RevalidateLists(bool runNonNexus)
|
||||
@ -117,6 +169,9 @@ namespace Wabbajack.BuildServer.Test
|
||||
|
||||
var validator = Fixture.GetService<ListValidator>();
|
||||
await validator.Execute();
|
||||
|
||||
var archiver = Fixture.GetService<ArchiveDownloader>();
|
||||
await archiver.Execute();
|
||||
}
|
||||
|
||||
private async Task CheckListFeeds(int failed, int passed)
|
||||
|
@ -23,7 +23,7 @@ namespace Wabbajack.Server.DTOs
|
||||
|
||||
public async Task Finish(SqlService service)
|
||||
{
|
||||
IsFailed = true;
|
||||
IsFailed = false;
|
||||
DownloadFinished = DateTime.UtcNow;
|
||||
await service.UpdatePendingDownload(this);
|
||||
}
|
||||
|
@ -206,7 +206,7 @@ namespace Wabbajack.Server.Services
|
||||
return isValid ? (archive, ArchiveStatus.Valid) : (archive, ArchiveStatus.InValid);
|
||||
}
|
||||
|
||||
return (archive, ArchiveStatus.InValid);
|
||||
return (archive, ArchiveStatus.Valid);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user