Skip to content

Commit

Permalink
Merge pull request #5424 from dfe-analytical-services/dev
Browse files Browse the repository at this point in the history
Merge Dev into Master
  • Loading branch information
N-moh authored Dec 2, 2024
2 parents d311cb3 + dfcecf2 commit 8bc8e59
Show file tree
Hide file tree
Showing 151 changed files with 17,878 additions and 3,602 deletions.
2 changes: 2 additions & 0 deletions azure-pipelines-main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -389,6 +389,8 @@ jobs:

- task: Bash@3
displayName: Build
env:
TECH_DOCS_API_URL: https://dev.statistics.api.education.gov.uk
inputs:
workingDirectory: $(WorkingDirectory)
targetType: inline
Expand Down
2 changes: 1 addition & 1 deletion infrastructure/templates/template.json
Original file line number Diff line number Diff line change
Expand Up @@ -2114,7 +2114,7 @@
"NEXT_CONFIG_MODE": "server",
"NODE_ENV": "production",
"PUBLIC_URL": "[concat(variables('publicAppUrl'), '/')]",
"PUBLIC_API_BASE_URL": "[concat('https://', parameters('publicApiUrl'),'/api/v1.0')]",
"PUBLIC_API_BASE_URL": "[concat('https://', parameters('publicApiUrl'), '/v1')]",
"PUBLIC_API_DOCS_URL": "[concat('https://', parameters('publicApiDocsUrl'))]",
"WEBSITE_NODE_DEFAULT_VERSION": "20.16.0",
"WEBSITES_PORT": 3000
Expand Down

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -204,12 +204,12 @@ public async Task UpdateApprovalStatus_ApprovingMethodologyWithUnusedImages()
mock.GetContentBlocks<HtmlBlock>(methodologyVersion.Id))
.ReturnsAsync(new List<HtmlBlock>());

imageService.Setup(mock =>
mock.Delete(methodologyVersion.Id, new List<Guid>
imageService.Setup(mock => mock.Delete(
methodologyVersion.Id, new List<Guid>
{
imageFile1.File.Id,
imageFile2.File.Id
}, false))
}, true))
.ReturnsAsync(Unit.Instance);

methodologyVersionRepository.Setup(mock =>
Expand All @@ -232,7 +232,7 @@ public async Task UpdateApprovalStatus_ApprovingMethodologyWithUnusedImages()
{
imageFile1.File.Id,
imageFile2.File.Id
}, false), Times.Once);
}, true), Times.Once);

VerifyAllMocks(contentService, imageService, methodologyVersionRepository);

Expand Down Expand Up @@ -680,7 +680,10 @@ public async Task UpdateApprovalStatus_ApprovingUsingImmediateStrategy()
new List<AllMethodologiesThemeViewModel>()));

redirectsCacheService.Setup(mock => mock.UpdateRedirects())
.ReturnsAsync(new RedirectsViewModel(new List<RedirectViewModel>(), new List<RedirectViewModel>()));
.ReturnsAsync(new RedirectsViewModel(
Publications: [],
Methodologies: [],
Releases: []));

await using (var context = InMemoryApplicationDbContext(contentDbContextId))
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1399,6 +1399,7 @@ public async Task ListLatestMethodologyVersions()
Assert.Null(viewModels[3].PreviousVersionId);
}
}

[Fact]
public async Task ListLatestMethodologyVersions_IsPrerelease()
{
Expand Down Expand Up @@ -1924,13 +1925,13 @@ public async Task UpdateMethodology_UpdatingAmendmentWithAlternativeSlug()
}),
Versions = new List<MethodologyVersion>
{
new ()
new()
{
Id = latestPublishedVersionId,
Status = Approved,
Version = 0,
},
new ()
new()
{
Id = latestVersionId,
Status = Draft,
Expand Down Expand Up @@ -2039,13 +2040,13 @@ public async Task UpdateMethodology_UpdatingAmendmentUnsetsAlternativeTitleAndSl
}),
Versions = new List<MethodologyVersion>
{
new ()
new()
{
Id = latestPublishedVersionId,
Status = Approved,
Version = 0,
},
new ()
new()
{
Id = latestVersionId,
AlternativeTitle = "Alternative Methodology Title",
Expand Down Expand Up @@ -2590,7 +2591,6 @@ public async Task DeleteMethodologyVersion()
{
MethodologyId = methodologyId,
PublicationId = Guid.NewGuid(),

})
}
};
Expand Down Expand Up @@ -3221,13 +3221,13 @@ public class ListUsersMethodologyVersionsForApprovalForReleaseRoles
[Fact]
public async Task UserIsApproverOnOwningPublicationRelease_Included()
{
var releaseVersion = _fixture.DefaultReleaseVersion().Generate();

var publication = _fixture
Publication publication = _fixture
.DefaultPublication()
.WithContact(MockContact)
.WithReleaseVersions(ListOf(releaseVersion))
.Generate();
.WithReleases(_fixture.DefaultRelease(publishedVersions: 1)
.Generate(1));

var releaseVersion = publication.Releases.Single().Versions.Single();

var methodology = _fixture
.DefaultMethodology()
Expand Down Expand Up @@ -3271,18 +3271,14 @@ public async Task UserIsApproverOnOwningPublicationRelease_Included()
[Fact]
public async Task UserIsApproverOnOwningPublicationOldRelease_Included()
{
var releaseVersions = _fixture
.DefaultReleaseVersion()
.WithApprovalStatuses(ListOf(
ReleaseApprovalStatus.Approved,
ReleaseApprovalStatus.Draft))
.GenerateList();

var publication = _fixture
Publication publication = _fixture
.DefaultPublication()
.WithContact(MockContact)
.WithReleaseVersions(releaseVersions)
.Generate();
.WithReleases(_fixture.DefaultRelease(publishedVersions: 1, draftVersion: true)
.Generate(1));

var publishedReleaseVersion = publication.Releases.Single().Versions
.Single(rv => rv is { Published: not null, Version: 0 });

var methodology = _fixture
.DefaultMethodology()
Expand All @@ -3296,7 +3292,7 @@ public async Task UserIsApproverOnOwningPublicationOldRelease_Included()
var releaseRoleForUserOnOldRelease = _fixture
.DefaultUserReleaseRole()
.WithUser(User)
.WithReleaseVersion(releaseVersions[0])
.WithReleaseVersion(publishedReleaseVersion)
.WithRole(ReleaseRole.Approver)
.Generate();

Expand Down Expand Up @@ -3505,13 +3501,13 @@ public async Task DifferentUserIsApproverOnOwningPublicationRelease_NotIncluded(
[Fact]
public async Task UserIsPublicationAndReleaseApprover_NoDuplication()
{
var releaseVersion = _fixture.DefaultReleaseVersion().Generate();

var publication = _fixture
Publication publication = _fixture
.DefaultPublication()
.WithContact(MockContact)
.WithReleaseVersions(ListOf(releaseVersion))
.Generate();
.WithReleases(_fixture.DefaultRelease(publishedVersions: 1)
.Generate(1));

var publishedReleaseVersion = publication.Releases.Single().Versions.Single();

var methodology = _fixture
.DefaultMethodology()
Expand All @@ -3532,7 +3528,7 @@ public async Task UserIsPublicationAndReleaseApprover_NoDuplication()
var releaseRoleForUser = _fixture
.DefaultUserReleaseRole()
.WithUser(User)
.WithReleaseVersion(releaseVersion)
.WithReleaseVersion(publishedReleaseVersion)
.WithRole(ReleaseRole.Approver)
.Generate();

Expand Down Expand Up @@ -3603,7 +3599,10 @@ public async Task PublicationTitleOrSlugChanged()
{
var redirectsCacheService = new Mock<IRedirectsCacheService>(MockBehavior.Strict);
redirectsCacheService.Setup(mock => mock.UpdateRedirects())
.ReturnsAsync(new RedirectsViewModel(new List<RedirectViewModel>(), new List<RedirectViewModel>()));
.ReturnsAsync(new RedirectsViewModel(
Publications: [],
Methodologies: [],
Releases: []));

var service = SetupMethodologyService(contentDbContext,
redirectsCacheService: redirectsCacheService.Object);
Expand Down Expand Up @@ -3662,7 +3661,10 @@ public async Task PublicationTitleOrSlugChanged_NoMethodologyRedirectAsMethodolo
{
var redirectsCacheService = new Mock<IRedirectsCacheService>(MockBehavior.Strict);
redirectsCacheService.Setup(mock => mock.UpdateRedirects())
.ReturnsAsync(new RedirectsViewModel(new List<RedirectViewModel>(), new List<RedirectViewModel>()));
.ReturnsAsync(new RedirectsViewModel(
Publications: [],
Methodologies: [],
Releases: []));

var service = SetupMethodologyService(contentDbContext,
redirectsCacheService: redirectsCacheService.Object);
Expand Down Expand Up @@ -3692,8 +3694,6 @@ await service.PublicationTitleOrSlugChanged(publicationId,
}
}



[Fact]
public async Task PublicationTitleOrSlugChanged_DoesNotAffectUnrelatedMethodologies()
{
Expand Down Expand Up @@ -3744,7 +3744,10 @@ await contentDbContext.PublicationMethodologies.AddRangeAsync(
{
var redirectsCacheService = new Mock<IRedirectsCacheService>(MockBehavior.Strict);
redirectsCacheService.Setup(mock => mock.UpdateRedirects())
.ReturnsAsync(new RedirectsViewModel(new List<RedirectViewModel>(), new List<RedirectViewModel>()));
.ReturnsAsync(new RedirectsViewModel(
Publications: [],
Methodologies: [],
Releases: []));

var service = SetupMethodologyService(contentDbContext,
redirectsCacheService: redirectsCacheService.Object);
Expand Down Expand Up @@ -3843,7 +3846,10 @@ public async Task PublicationTitleOrSlugChanged_MethodologySlugIsAlternativeSlug
{
var redirectsCacheService = new Mock<IRedirectsCacheService>(MockBehavior.Strict);
redirectsCacheService.Setup(mock => mock.UpdateRedirects())
.ReturnsAsync(new RedirectsViewModel(new List<RedirectViewModel>(), new List<RedirectViewModel>()));
.ReturnsAsync(new RedirectsViewModel(
Publications: [],
Methodologies: [],
Releases: []));

var service = SetupMethodologyService(contentDbContext,
redirectsCacheService: redirectsCacheService.Object);
Expand Down Expand Up @@ -3910,7 +3916,10 @@ public async Task PublicationTitleOrSlugChanged_MethodologyIsLive()
{
var redirectsCacheService = new Mock<IRedirectsCacheService>(MockBehavior.Strict);
redirectsCacheService.Setup(mock => mock.UpdateRedirects())
.ReturnsAsync(new RedirectsViewModel(new List<RedirectViewModel>(), new List<RedirectViewModel>()));
.ReturnsAsync(new RedirectsViewModel(
Publications: [],
Methodologies: [],
Releases: []));

var service = SetupMethodologyService(contentDbContext,
redirectsCacheService: redirectsCacheService.Object);
Expand All @@ -3937,7 +3946,8 @@ public async Task PublicationTitleOrSlugChanged_MethodologyIsLive()
}

[Fact]
public async Task PublicationTitleOrSlugChanged_CurrentInheritedPubSlugChangesWithUnpublishedAmendmentWithAlternativeSlug()
public async Task
PublicationTitleOrSlugChanged_CurrentInheritedPubSlugChangesWithUnpublishedAmendmentWithAlternativeSlug()
{
var publicationId = Guid.NewGuid();
var latestPublishedVersionId = Guid.NewGuid();
Expand All @@ -3959,12 +3969,12 @@ public async Task PublicationTitleOrSlugChanged_CurrentInheritedPubSlugChangesWi
LatestPublishedVersionId = latestPublishedVersionId,
Versions = new List<MethodologyVersion>
{
new ()
new()
{
Id = latestPublishedVersionId,
Version = 0,
},
new ()
new()
{
Id = latestVersionId,
Version = 1,
Expand Down Expand Up @@ -3993,7 +4003,10 @@ public async Task PublicationTitleOrSlugChanged_CurrentInheritedPubSlugChangesWi
{
var redirectsCacheService = new Mock<IRedirectsCacheService>(MockBehavior.Strict);
redirectsCacheService.Setup(mock => mock.UpdateRedirects())
.ReturnsAsync(new RedirectsViewModel(new List<RedirectViewModel>(), new List<RedirectViewModel>()));
.ReturnsAsync(new RedirectsViewModel(
Publications: [],
Methodologies: [],
Releases: []));

var service = SetupMethodologyService(contentDbContext,
redirectsCacheService: redirectsCacheService.Object);
Expand Down Expand Up @@ -4032,7 +4045,8 @@ await service.PublicationTitleOrSlugChanged(publicationId, "current-slug",
}

[Fact]
public async Task PublicationTitleOrSlugChanged_UnpublishedMethodologyAmendmentDoesNotNeedRedirectIfRedirectAlreadyExists()
public async Task
PublicationTitleOrSlugChanged_UnpublishedMethodologyAmendmentDoesNotNeedRedirectIfRedirectAlreadyExists()
{
var publicationId = Guid.NewGuid();
var latestPublishedVersionId = Guid.NewGuid();
Expand All @@ -4054,12 +4068,12 @@ public async Task PublicationTitleOrSlugChanged_UnpublishedMethodologyAmendmentD
LatestPublishedVersionId = latestPublishedVersionId,
Versions = new List<MethodologyVersion>
{
new ()
new()
{
Id = latestPublishedVersionId,
Version = 0,
},
new ()
new()
{
Id = latestVersionId,
Version = 1,
Expand Down Expand Up @@ -4095,7 +4109,10 @@ public async Task PublicationTitleOrSlugChanged_UnpublishedMethodologyAmendmentD
{
var redirectsCacheService = new Mock<IRedirectsCacheService>(MockBehavior.Strict);
redirectsCacheService.Setup(mock => mock.UpdateRedirects())
.ReturnsAsync(new RedirectsViewModel(new List<RedirectViewModel>(), new List<RedirectViewModel>()));
.ReturnsAsync(new RedirectsViewModel(
Publications: [],
Methodologies: [],
Releases: []));

var service = SetupMethodologyService(contentDbContext,
redirectsCacheService: redirectsCacheService.Object);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1127,7 +1127,9 @@ public async Task UpdatePublication_AlreadyPublished()

redirectsCacheService.Setup(mock => mock.UpdateRedirects())
.ReturnsAsync(new RedirectsViewModel(
new List<RedirectViewModel>(), new List<RedirectViewModel>()));
Publications: [],
Methodologies: [],
Releases: []));

var publicationService = BuildPublicationService(context,
methodologyService: methodologyService.Object,
Expand Down Expand Up @@ -1270,7 +1272,9 @@ public async Task UpdatePublication_TitleChangesPublicationAndMethodologySlug()

redirectsCacheService.Setup(mock => mock.UpdateRedirects())
.ReturnsAsync(new RedirectsViewModel(
new List<RedirectViewModel>(), new List<RedirectViewModel>()));
Publications: [],
Methodologies: [],
Releases: []));

var publicationService = BuildPublicationService(context,
methodologyService: methodologyService.Object,
Expand Down Expand Up @@ -1575,7 +1579,9 @@ public async Task UpdatePublication_CreateRedirectIfLiveSlugChanged()
var redirectsCacheService = new Mock<IRedirectsCacheService>(Strict);
redirectsCacheService.Setup(mock => mock.UpdateRedirects())
.ReturnsAsync(new RedirectsViewModel(
new List<RedirectViewModel>(), new List<RedirectViewModel>()));
Publications: [],
Methodologies: [],
Releases: []));

var publicationService = BuildPublicationService(context,
methodologyService: methodologyService.Object,
Expand Down Expand Up @@ -1672,7 +1678,9 @@ public async Task UpdatePublication_ChangeBackToPreviousLiveSlug()
var redirectsCacheService = new Mock<IRedirectsCacheService>(Strict);
redirectsCacheService.Setup(mock => mock.UpdateRedirects())
.ReturnsAsync(new RedirectsViewModel(
new List<RedirectViewModel>(), new List<RedirectViewModel>()));
Publications: [],
Methodologies: [],
Releases: []));

var publicationService = BuildPublicationService(context,
methodologyService: methodologyService.Object,
Expand Down
Loading

0 comments on commit 8bc8e59

Please sign in to comment.