mirror of
https://github.com/Ombi-app/Ombi.git
synced 2025-08-20 13:23:20 -07:00
commit
4c7fd45c01
5 changed files with 84 additions and 5 deletions
|
@ -130,5 +130,76 @@ namespace Ombi.Core.Tests.Rule.Search
|
||||||
Assert.False(search.Approved);
|
Assert.False(search.Approved);
|
||||||
Assert.False(search.Requested);
|
Assert.False(search.Requested);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public async Task ShouldBeFullyAvailable_NoFutureAiredEpisodes_NoRequest()
|
||||||
|
{
|
||||||
|
var search = new SearchTvShowViewModel()
|
||||||
|
{
|
||||||
|
Id = 999,
|
||||||
|
SeasonRequests = new List<SeasonRequests>
|
||||||
|
{
|
||||||
|
new SeasonRequests
|
||||||
|
{
|
||||||
|
Episodes = new List<EpisodeRequests>
|
||||||
|
{
|
||||||
|
new EpisodeRequests
|
||||||
|
{
|
||||||
|
Available = true,
|
||||||
|
AirDate = new System.DateTime(2020,01,01)
|
||||||
|
},
|
||||||
|
new EpisodeRequests
|
||||||
|
{
|
||||||
|
Available = true,
|
||||||
|
AirDate = new System.DateTime(2020,01,02)
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
var result = await Rule.Execute(search);
|
||||||
|
|
||||||
|
Assert.True(result.Success);
|
||||||
|
Assert.That(search.FullyAvailable, Is.True);
|
||||||
|
Assert.That(search.PartlyAvailable, Is.False);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public async Task ShouldBeFullyAvailable_AndPartly_FutureAiredEpisodes_NoRequest()
|
||||||
|
{
|
||||||
|
var search = new SearchTvShowViewModel()
|
||||||
|
{
|
||||||
|
Id = 999,
|
||||||
|
SeasonRequests = new List<SeasonRequests>
|
||||||
|
{
|
||||||
|
new SeasonRequests
|
||||||
|
{
|
||||||
|
Episodes = new List<EpisodeRequests>
|
||||||
|
{
|
||||||
|
new EpisodeRequests
|
||||||
|
{
|
||||||
|
Available = true,
|
||||||
|
AirDate = new System.DateTime(2020,01,01)
|
||||||
|
},
|
||||||
|
new EpisodeRequests
|
||||||
|
{
|
||||||
|
Available = true,
|
||||||
|
AirDate = new System.DateTime(2020,01,02)
|
||||||
|
},
|
||||||
|
new EpisodeRequests
|
||||||
|
{
|
||||||
|
Available = true,
|
||||||
|
AirDate = new System.DateTime(2029,01,02)
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
var result = await Rule.Execute(search);
|
||||||
|
|
||||||
|
Assert.True(result.Success);
|
||||||
|
Assert.That(search.FullyAvailable, Is.True);
|
||||||
|
Assert.That(search.PartlyAvailable, Is.True);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -85,11 +85,18 @@ namespace Ombi.Core.Rule.Rules.Search
|
||||||
{
|
{
|
||||||
request.FullyAvailable = true;
|
request.FullyAvailable = true;
|
||||||
}
|
}
|
||||||
if (request.SeasonRequests.Any() && request.SeasonRequests.All(x => x.Episodes.Any(e => e.Available && e.AirDate > DateTime.MinValue)))
|
if (request.SeasonRequests.Any() && request.SeasonRequests.All(x => x.Episodes.Any(e => e.Available && e.AirDate > DateTime.MinValue && e.AirDate <= DateTime.UtcNow)))
|
||||||
{
|
{
|
||||||
request.PartlyAvailable = true;
|
request.PartlyAvailable = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var hasUnairedRequests = request.SeasonRequests.Any() && request.SeasonRequests.All(x => x.Episodes.Any(e => e.AirDate >= DateTime.UtcNow));
|
||||||
|
|
||||||
|
if (request.FullyAvailable)
|
||||||
|
{
|
||||||
|
request.PartlyAvailable = hasUnairedRequests;
|
||||||
|
}
|
||||||
|
|
||||||
return Success();
|
return Success();
|
||||||
}
|
}
|
||||||
if (obj.Type == RequestType.Album)
|
if (obj.Type == RequestType.Album)
|
||||||
|
|
|
@ -79,7 +79,7 @@ namespace Ombi.Schedule.Jobs.Emby
|
||||||
// Episodes
|
// Episodes
|
||||||
|
|
||||||
|
|
||||||
await OmbiQuartz.Scheduler.TriggerJob(new JobKey(nameof(IEmbyEpisodeSync), "Emby"), new JobDataMap(new Dictionary<string, string> { { JobDataKeys.EmbyRecentlyAddedSearch, "true" } }));
|
await OmbiQuartz.Scheduler.TriggerJob(new JobKey(nameof(IEmbyEpisodeSync), "Emby"), new JobDataMap(new Dictionary<string, string> { { JobDataKeys.EmbyRecentlyAddedSearch, recentlyAddedSearch.ToString() } }));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
3
src/Ombi/.vscode/settings.json
vendored
3
src/Ombi/.vscode/settings.json
vendored
|
@ -19,6 +19,7 @@
|
||||||
"newsletter",
|
"newsletter",
|
||||||
"mass-email",
|
"mass-email",
|
||||||
"issues",
|
"issues",
|
||||||
"emby"
|
"emby",
|
||||||
|
"availability-rules"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
|
@ -101,7 +101,7 @@ describe("Search Tests", () => {
|
||||||
|
|
||||||
it("No Movie results, enabling Tv filter we get results", () => {
|
it("No Movie results, enabling Tv filter we get results", () => {
|
||||||
Page.navbar.searchFilter.applyFilter(false, true, false);
|
Page.navbar.searchFilter.applyFilter(false, true, false);
|
||||||
Page.visit("It's always sunny in Philadelphia");
|
Page.visit("Dexter New Blood");
|
||||||
|
|
||||||
cy.wait('@searchResponse');
|
cy.wait('@searchResponse');
|
||||||
Page.noSearchResultMessage.should('exist');
|
Page.noSearchResultMessage.should('exist');
|
||||||
|
@ -113,7 +113,7 @@ describe("Search Tests", () => {
|
||||||
const card = Page.getCard('2710', false);
|
const card = Page.getCard('2710', false);
|
||||||
|
|
||||||
card.topLevelCard.realHover();
|
card.topLevelCard.realHover();
|
||||||
card.title.should('have.text', "It's Always Sunny in Philadelphia");
|
card.title.should('have.text', "Dexter: New Blood");
|
||||||
card.overview.contains('Irish pub');
|
card.overview.contains('Irish pub');
|
||||||
card.requestType.contains('TV Show');
|
card.requestType.contains('TV Show');
|
||||||
card.requestButton.should('exist');
|
card.requestButton.should('exist');
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue