using MongoDB.Entities; using PrivaPub.Infrastructure.Data.Migrations; using PrivaPub.Models.Post; using PrivaPub.Tests.Support; namespace PrivaPub.Tests.Infrastructure { [Trait("Category", "Integration")] public class MigrationTests { [Fact] public async Task Stored_remote_content_is_sanitized_and_local_content_rendered() { Assert.SkipUnless(MongoFixture.Enabled, MongoFixture.Skip); var token = TestContext.Current.CancellationToken; var remote = new Post { IsFederatedCopy = true, Text = "
hi
", ObjectURI = $"https://r.example/{Guid.NewGuid():N}" }; var local = new Post { Text = "**bold** raw", ObjectURI = $"https://privapub.test/{Guid.NewGuid():N}" }; await DB.Default.SaveAsync(new[] { remote, local }, token); await new _002_sanitize_stored_content().UpgradeAsync(); var migratedRemote = await DB.Default.Findhi
", migratedRemote.Text); Assert.Equal("hi
", migratedRemote.ContentHtml); Assert.Equal(ContentFormat.Html, migratedRemote.ContentFormat); Assert.Equal("**bold** raw", migratedLocal.Text); Assert.Equal("bold <b>raw</b>
", migratedLocal.ContentHtml); Assert.Equal(ContentFormat.Markdown, migratedLocal.ContentFormat); } } }