|
|
|
@ -1335,16 +1335,23 @@ class ReviewQualityCheckStoreTest {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
fun `GIVEN deletedProduct is true WHEN report back in stock returns not deleted THEN state is updated to no analysis`() =
|
|
|
|
|
fun `GIVEN ProductNotAvailable WHEN report back in stock returns not deleted THEN state is updated to no analysis`() =
|
|
|
|
|
runTest {
|
|
|
|
|
val tested = ReviewQualityCheckStore(
|
|
|
|
|
initialState = ReviewQualityCheckState.OptedIn(
|
|
|
|
|
productReviewState = ReviewQualityCheckState.OptedIn.ProductReviewState.Error.ProductNotAvailable,
|
|
|
|
|
productRecommendationsPreference = false,
|
|
|
|
|
productRecommendationsExposure = true,
|
|
|
|
|
productVendor = ProductVendor.BEST_BUY,
|
|
|
|
|
),
|
|
|
|
|
middleware = provideReviewQualityCheckMiddleware(
|
|
|
|
|
reviewQualityCheckPreferences = FakeReviewQualityCheckPreferences(isEnabled = true),
|
|
|
|
|
reviewQualityCheckService = FakeReviewQualityCheckService(
|
|
|
|
|
productAnalysis = {
|
|
|
|
|
ProductAnalysisTestData.productAnalysis(
|
|
|
|
|
deletedProduct = true,
|
|
|
|
|
deletedProductReported = false,
|
|
|
|
|
grade = null,
|
|
|
|
|
adjustedRating = null,
|
|
|
|
|
needsAnalysis = true,
|
|
|
|
|
)
|
|
|
|
|
},
|
|
|
|
|
reanalysis = AnalysisStatusDto.PENDING,
|
|
|
|
@ -1357,45 +1364,17 @@ class ReviewQualityCheckStoreTest {
|
|
|
|
|
tested.waitUntilIdle()
|
|
|
|
|
dispatcher.scheduler.advanceUntilIdle()
|
|
|
|
|
tested.waitUntilIdle()
|
|
|
|
|
tested.dispatch(ReviewQualityCheckAction.FetchProductAnalysis).joinBlocking()
|
|
|
|
|
tested.dispatch(ReviewQualityCheckAction.ReportProductBackInStock).joinBlocking()
|
|
|
|
|
tested.waitUntilIdle()
|
|
|
|
|
dispatcher.scheduler.advanceUntilIdle()
|
|
|
|
|
|
|
|
|
|
val expected = ReviewQualityCheckState.OptedIn(
|
|
|
|
|
productReviewState = ReviewQualityCheckState.OptedIn.ProductReviewState.Error.ProductNotAvailable,
|
|
|
|
|
productReviewState = ProductAnalysisTestData.noAnalysisPresent(progress = -1f),
|
|
|
|
|
productRecommendationsPreference = false,
|
|
|
|
|
productRecommendationsExposure = true,
|
|
|
|
|
productVendor = ProductVendor.BEST_BUY,
|
|
|
|
|
)
|
|
|
|
|
assertEquals(expected, tested.state)
|
|
|
|
|
|
|
|
|
|
val noAnalysisTested = ReviewQualityCheckStore(
|
|
|
|
|
middleware = provideReviewQualityCheckMiddleware(
|
|
|
|
|
reviewQualityCheckPreferences = FakeReviewQualityCheckPreferences(isEnabled = true),
|
|
|
|
|
reviewQualityCheckService = FakeReviewQualityCheckService(
|
|
|
|
|
productAnalysis = {
|
|
|
|
|
ProductAnalysisTestData.productAnalysis(
|
|
|
|
|
grade = null,
|
|
|
|
|
adjustedRating = null,
|
|
|
|
|
needsAnalysis = true,
|
|
|
|
|
)
|
|
|
|
|
},
|
|
|
|
|
reanalysis = AnalysisStatusDto.PENDING,
|
|
|
|
|
statusProgress = { null },
|
|
|
|
|
report = ReportBackInStockStatusDto.NOT_DELETED,
|
|
|
|
|
),
|
|
|
|
|
networkChecker = FakeNetworkChecker(isConnected = true),
|
|
|
|
|
),
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
noAnalysisTested.dispatch(ReviewQualityCheckAction.ReportProductBackInStock).joinBlocking()
|
|
|
|
|
noAnalysisTested.waitUntilIdle()
|
|
|
|
|
dispatcher.scheduler.advanceUntilIdle()
|
|
|
|
|
|
|
|
|
|
val reportExpected = expected.copy(
|
|
|
|
|
productReviewState = ProductAnalysisTestData.noAnalysisPresent(progress = -1f),
|
|
|
|
|
)
|
|
|
|
|
assertEquals(reportExpected, noAnalysisTested.state)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|