Skip to content

Commit f561faa

Browse files
author
Thomas Horta
authored
Merge pull request #19971 from wordpress-mobile/issue/19970-prompts-id-tag
[Prompts] Build dailyprompt-id tag in code based on the Prompt ID
2 parents ed41f4f + a339105 commit f561faa

File tree

6 files changed

+37
-18
lines changed

6 files changed

+37
-18
lines changed

RELEASE-NOTES.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
* [**] Block Editor: Image block media uploads display a custom error message when there is no internet connection [https://github.com/wordpress-mobile/WordPress-Android/pull/19878]
88
* [**] Block Editor: Media uploads that failed due to lack of internet connectivity automatically retry once a connection is re-established [https://github.com/wordpress-mobile/WordPress-Android/pull/19803]
99
* [*] [Jetpack-only] Added opening domain management from the Site Domain screen by tapping on the domain cards [https://github.com/wordpress-mobile/WordPress-Android/pull/19910]
10+
* [*] [Jetpack-only] Fix Prompt response posts not having one of the `dailyprompt` tags [https://github.com/wordpress-mobile/WordPress-Android/pull/19971]
1011

1112
24.0
1213
-----

WordPress/src/main/java/org/wordpress/android/ui/bloggingprompts/BloggingPromptsPostTagProvider.kt

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,15 @@ class BloggingPromptsPostTagProvider @Inject constructor(
1010
private val readerUtilsWrapper: ReaderUtilsWrapper,
1111
) {
1212
fun promptIdTag(
13-
tagUrl: String
14-
): String = readerUtilsWrapper.getTagFromTagUrl(tagUrl)
15-
.takeIf { it.isNotBlank() }
13+
id: Int
14+
): String = "$BLOGGING_PROMPT_ID_TAG_PREFIX$id"
15+
.takeIf { id > 0 }
1616
?: BLOGGING_PROMPT_TAG
1717

18-
fun promptIdSearchReaderTag(
18+
fun promptSearchReaderTag(
1919
tagUrl: String
2020
): ReaderTag {
21-
val promptIdTag = promptIdTag(tagUrl)
21+
val promptIdTag = promptTagFromUrl(tagUrl)
2222
return ReaderTag(
2323
promptIdTag,
2424
promptIdTag,
@@ -28,8 +28,15 @@ class BloggingPromptsPostTagProvider @Inject constructor(
2828
)
2929
}
3030

31+
private fun promptTagFromUrl(
32+
tagUrl: String
33+
): String = readerUtilsWrapper.getTagFromTagUrl(tagUrl)
34+
.takeIf { it.isNotBlank() }
35+
?: BLOGGING_PROMPT_TAG
36+
3137
companion object {
3238
const val BLOGGING_PROMPT_TAG = "dailyprompt"
39+
const val BLOGGING_PROMPT_ID_TAG_PREFIX = "dailyprompt-"
3340
const val BLOGANUARY_TAG = "bloganuary"
3441
}
3542
}

WordPress/src/main/java/org/wordpress/android/ui/mysite/cards/dashboard/bloggingprompts/BloggingPromptCardViewModelSlice.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ class BloggingPromptCardViewModelSlice @Inject constructor(
9595

9696
private fun onBloggingPromptViewAnswersClick(tagUrl: String) {
9797
bloggingPromptsCardAnalyticsTracker.trackMySiteCardViewAnswersClicked()
98-
val tag = bloggingPromptsPostTagProvider.promptIdSearchReaderTag(tagUrl)
98+
val tag = bloggingPromptsPostTagProvider.promptSearchReaderTag(tagUrl)
9999
_onNavigation.value = Event(BloggingPromptCardNavigationAction.ViewAnswers(tag))
100100
}
101101

WordPress/src/main/java/org/wordpress/android/ui/posts/EditorBloggingPromptsViewModel.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ class EditorBloggingPromptsViewModel
5555

5656
private fun createPromptTags(prompt: BloggingPromptModel): List<String> = mutableListOf<String>().apply {
5757
add(BloggingPromptsPostTagProvider.BLOGGING_PROMPT_TAG)
58-
add(bloggingPromptsPostTagProvider.promptIdTag(prompt.answeredLink))
58+
add(bloggingPromptsPostTagProvider.promptIdTag(prompt.id))
5959
prompt.bloganuaryId?.let { bloganuaryIdTag ->
6060
add(BloggingPromptsPostTagProvider.BLOGANUARY_TAG)
6161
add(bloganuaryIdTag)

WordPress/src/test/java/org/wordpress/android/ui/bloggingprompts/BloggingPromptsPostTagProviderTest.kt

Lines changed: 21 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -27,25 +27,21 @@ class BloggingPromptsPostTagProviderTest : BaseUnitTest() {
2727
}
2828

2929
@Test
30-
fun `Should return the expected tag when promptIdTag is called given valid url`() {
31-
whenever(readerUtilsWrapper.getTagFromTagUrl(any())).thenReturn(BLOGGING_PROMPT_ID_TAG)
32-
33-
val actual = tagProvider.promptIdTag("valid-url")
30+
fun `Should return the expected tag when promptIdTag is called given valid id`() {
31+
val actual = tagProvider.promptIdTag(1234)
3432

3533
assertThat(actual).isEqualTo(BLOGGING_PROMPT_ID_TAG)
3634
}
3735

3836
@Test
39-
fun `Should return the generic tag when promptIdTag is called given invalid url`() {
40-
whenever(readerUtilsWrapper.getTagFromTagUrl(any())).thenReturn("")
41-
42-
val actual = tagProvider.promptIdTag("invalid-url")
37+
fun `Should return the generic tag when promptIdTag is called given invalid id`() {
38+
val actual = tagProvider.promptIdTag(0)
4339

4440
assertThat(actual).isEqualTo(BloggingPromptsPostTagProvider.BLOGGING_PROMPT_TAG)
4541
}
4642

4743
@Test
48-
fun `Should return the expected ReaderTag when promptIdSearchReaderTag is called`() {
44+
fun `Should return the expected ReaderTag when promptSearchReaderTag is called`() {
4945
whenever(readerUtilsWrapper.getTagFromTagUrl(any())).thenReturn(BLOGGING_PROMPT_ID_TAG)
5046
val expected = ReaderTag(
5147
BLOGGING_PROMPT_ID_TAG,
@@ -54,11 +50,26 @@ class BloggingPromptsPostTagProviderTest : BaseUnitTest() {
5450
ReaderPostLogic.formatFullEndpointForTag(BLOGGING_PROMPT_ID_TAG),
5551
ReaderTagType.FOLLOWED,
5652
)
57-
val actual = tagProvider.promptIdSearchReaderTag("valid-url")
53+
val actual = tagProvider.promptSearchReaderTag("valid-url")
54+
assertEquals(expected, actual)
55+
}
56+
57+
@Test
58+
fun `Should return the base Prompt ReaderTag when promptSearchReaderTag is called`() {
59+
whenever(readerUtilsWrapper.getTagFromTagUrl(any())).thenReturn("")
60+
val expected = ReaderTag(
61+
BLOGGING_PROMPT_TAG,
62+
BLOGGING_PROMPT_TAG,
63+
BLOGGING_PROMPT_TAG,
64+
ReaderPostLogic.formatFullEndpointForTag(BLOGGING_PROMPT_TAG),
65+
ReaderTagType.FOLLOWED,
66+
)
67+
val actual = tagProvider.promptSearchReaderTag("invalid-url")
5868
assertEquals(expected, actual)
5969
}
6070

6171
companion object {
6272
private const val BLOGGING_PROMPT_ID_TAG = "dailyprompt-1234"
73+
private const val BLOGGING_PROMPT_TAG = "dailyprompt"
6374
}
6475
}

WordPress/src/test/java/org/wordpress/android/ui/mysite/cards/dashboard/bloggingprompts/BloggingPromptCardViewModelSliceTest.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ class BloggingPromptCardViewModelSliceTest : BaseUnitTest() {
141141
val tagUrl = "valid-url"
142142

143143
val expectedTag = mock<ReaderTag>()
144-
whenever(bloggingPromptsPostTagProvider.promptIdSearchReaderTag(tagUrl)).thenReturn(expectedTag)
144+
whenever(bloggingPromptsPostTagProvider.promptSearchReaderTag(tagUrl)).thenReturn(expectedTag)
145145

146146
val params = viewModelSlice.getBuilderParams(mock())
147147
params.onViewAnswersClick(tagUrl)

0 commit comments

Comments
 (0)