1
0

GuideEntryPrototypeTests.cs 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. using Content.Client.Guidebook;
  2. using Content.Client.Guidebook.Richtext;
  3. using Robust.Shared.ContentPack;
  4. using Robust.Shared.Prototypes;
  5. using System.Linq;
  6. using Content.Shared.Guidebook;
  7. namespace Content.IntegrationTests.Tests.Guidebook;
  8. [TestFixture]
  9. [TestOf(typeof(GuidebookSystem))]
  10. [TestOf(typeof(GuideEntryPrototype))]
  11. [TestOf(typeof(DocumentParsingManager))]
  12. public sealed class GuideEntryPrototypeTests
  13. {
  14. [Test]
  15. public async Task ValidatePrototypeContents()
  16. {
  17. await using var pair = await PoolManager.GetServerClient(new PoolSettings { Connected = true });
  18. var client = pair.Client;
  19. await client.WaitIdleAsync();
  20. var protoMan = client.ResolveDependency<IPrototypeManager>();
  21. var resMan = client.ResolveDependency<IResourceManager>();
  22. var parser = client.ResolveDependency<DocumentParsingManager>();
  23. var prototypes = protoMan.EnumeratePrototypes<GuideEntryPrototype>().ToList();
  24. foreach (var proto in prototypes)
  25. {
  26. await client.WaitAssertion(() =>
  27. {
  28. using var reader = resMan.ContentFileReadText(proto.Text);
  29. var text = reader.ReadToEnd();
  30. Assert.That(parser.TryAddMarkup(new Document(), text), $"Failed to parse guidebook: {proto.Id}");
  31. });
  32. // Avoid styleguide update limit
  33. await client.WaitRunTicks(1);
  34. }
  35. await pair.CleanReturnAsync();
  36. }
  37. }