@ -61,7 +61,15 @@ class ActionListPresenterTest {
@@ -61,7 +61,15 @@ class ActionListPresenterTest {
} . test {
val initialState = awaitItem ( )
val messageEvent = aMessageEvent ( isMine = true , content = TimelineItemRedactedContent )
initialState . eventSink . invoke ( ActionListEvents . ComputeForMessage ( messageEvent , canRedact = false , canSendMessage = true , canSendReaction = true ) )
initialState . eventSink . invoke (
ActionListEvents . ComputeForMessage (
event = messageEvent ,
canRedactOwn = false ,
canRedactOther = false ,
canSendMessage = true ,
canSendReaction = true ,
)
)
// val loadingState = awaitItem()
// assertThat(loadingState.target).isEqualTo(ActionListState.Target.Loading(messageEvent))
val successState = awaitItem ( )
@ -87,7 +95,15 @@ class ActionListPresenterTest {
@@ -87,7 +95,15 @@ class ActionListPresenterTest {
} . test {
val initialState = awaitItem ( )
val messageEvent = aMessageEvent ( isMine = false , content = TimelineItemRedactedContent )
initialState . eventSink . invoke ( ActionListEvents . ComputeForMessage ( messageEvent , canRedact = false , canSendMessage = true , canSendReaction = true ) )
initialState . eventSink . invoke (
ActionListEvents . ComputeForMessage (
event = messageEvent ,
canRedactOwn = false ,
canRedactOther = false ,
canSendMessage = true ,
canSendReaction = true ,
)
)
// val loadingState = awaitItem()
// assertThat(loadingState.target).isEqualTo(ActionListState.Target.Loading(messageEvent))
val successState = awaitItem ( )
@ -116,7 +132,15 @@ class ActionListPresenterTest {
@@ -116,7 +132,15 @@ class ActionListPresenterTest {
isMine = false ,
content = TimelineItemTextContent ( body = A _MESSAGE , htmlDocument = null , isEdited = false , formattedBody = null )
)
initialState . eventSink . invoke ( ActionListEvents . ComputeForMessage ( messageEvent , canRedact = false , canSendMessage = true , canSendReaction = true ) )
initialState . eventSink . invoke (
ActionListEvents . ComputeForMessage (
event = messageEvent ,
canRedactOwn = false ,
canRedactOther = false ,
canSendMessage = true ,
canSendReaction = true ,
)
)
// val loadingState = awaitItem()
// assertThat(loadingState.target).isEqualTo(ActionListState.Target.Loading(messageEvent))
val successState = awaitItem ( )
@ -149,7 +173,15 @@ class ActionListPresenterTest {
@@ -149,7 +173,15 @@ class ActionListPresenterTest {
isMine = false ,
content = TimelineItemTextContent ( body = A _MESSAGE , htmlDocument = null , isEdited = false , formattedBody = null )
)
initialState . eventSink . invoke ( ActionListEvents . ComputeForMessage ( messageEvent , canRedact = false , canSendMessage = false , canSendReaction = true ) )
initialState . eventSink . invoke (
ActionListEvents . ComputeForMessage (
event = messageEvent ,
canRedactOwn = true ,
canRedactOther = false ,
canSendMessage = false ,
canSendReaction = true
)
)
// val loadingState = awaitItem()
// assertThat(loadingState.target).isEqualTo(ActionListState.Target.Loading(messageEvent))
val successState = awaitItem ( )
@ -181,7 +213,15 @@ class ActionListPresenterTest {
@@ -181,7 +213,15 @@ class ActionListPresenterTest {
isMine = false ,
content = TimelineItemTextContent ( body = A _MESSAGE , htmlDocument = null , isEdited = false , formattedBody = null )
)
initialState . eventSink . invoke ( ActionListEvents . ComputeForMessage ( messageEvent , canRedact = true , canSendMessage = true , canSendReaction = true ) )
initialState . eventSink . invoke (
ActionListEvents . ComputeForMessage (
event = messageEvent ,
canRedactOwn = false ,
canRedactOther = true ,
canSendMessage = true ,
canSendReaction = true ,
)
)
val successState = awaitItem ( )
assertThat ( successState . target ) . isEqualTo (
ActionListState . Target . Success (
@ -213,7 +253,15 @@ class ActionListPresenterTest {
@@ -213,7 +253,15 @@ class ActionListPresenterTest {
isMine = false ,
content = TimelineItemTextContent ( body = A _MESSAGE , htmlDocument = null , isEdited = false , formattedBody = null )
)
initialState . eventSink . invoke ( ActionListEvents . ComputeForMessage ( messageEvent , canRedact = true , canSendMessage = true , canSendReaction = false ) )
initialState . eventSink . invoke (
ActionListEvents . ComputeForMessage (
event = messageEvent ,
canRedactOwn = false ,
canRedactOther = true ,
canSendMessage = true ,
canSendReaction = false
)
)
val successState = awaitItem ( )
assertThat ( successState . target ) . isEqualTo (
ActionListState . Target . Success (
@ -245,7 +293,15 @@ class ActionListPresenterTest {
@@ -245,7 +293,15 @@ class ActionListPresenterTest {
isMine = true ,
content = TimelineItemTextContent ( body = A _MESSAGE , htmlDocument = null , isEdited = false , formattedBody = null )
)
initialState . eventSink . invoke ( ActionListEvents . ComputeForMessage ( messageEvent , canRedact = false , canSendMessage = true , canSendReaction = true ) )
initialState . eventSink . invoke (
ActionListEvents . ComputeForMessage (
event = messageEvent ,
canRedactOwn = true ,
canRedactOther = false ,
canSendMessage = true ,
canSendReaction = true ,
)
)
// val loadingState = awaitItem()
// assertThat(loadingState.target).isEqualTo(ActionListState.Target.Loading(messageEvent))
val successState = awaitItem ( )
@ -268,6 +324,47 @@ class ActionListPresenterTest {
@@ -268,6 +324,47 @@ class ActionListPresenterTest {
}
}
@Test
fun `present - compute for my message cannot redact` ( ) = runTest {
val presenter = createActionListPresenter ( isDeveloperModeEnabled = true )
moleculeFlow ( RecompositionMode . Immediate ) {
presenter . present ( )
} . test {
val initialState = awaitItem ( )
val messageEvent = aMessageEvent (
isMine = true ,
content = TimelineItemTextContent ( body = A _MESSAGE , htmlDocument = null , isEdited = false , formattedBody = null )
)
initialState . eventSink . invoke (
ActionListEvents . ComputeForMessage (
event = messageEvent ,
canRedactOwn = false ,
canRedactOther = false ,
canSendMessage = true ,
canSendReaction = true ,
)
)
// val loadingState = awaitItem()
// assertThat(loadingState.target).isEqualTo(ActionListState.Target.Loading(messageEvent))
val successState = awaitItem ( )
assertThat ( successState . target ) . isEqualTo (
ActionListState . Target . Success (
event = messageEvent ,
displayEmojiReactions = true ,
actions = persistentListOf (
TimelineItemAction . Reply ,
TimelineItemAction . Forward ,
TimelineItemAction . Edit ,
TimelineItemAction . Copy ,
TimelineItemAction . ViewSource ,
)
)
)
initialState . eventSink . invoke ( ActionListEvents . Clear )
assertThat ( awaitItem ( ) . target ) . isEqualTo ( ActionListState . Target . None )
}
}
@Test
fun `present - compute for a media item` ( ) = runTest {
val presenter = createActionListPresenter ( isDeveloperModeEnabled = true )
@ -279,7 +376,15 @@ class ActionListPresenterTest {
@@ -279,7 +376,15 @@ class ActionListPresenterTest {
isMine = true ,
content = aTimelineItemImageContent ( ) ,
)
initialState . eventSink . invoke ( ActionListEvents . ComputeForMessage ( messageEvent , canRedact = false , canSendMessage = true , canSendReaction = true ) )
initialState . eventSink . invoke (
ActionListEvents . ComputeForMessage (
event = messageEvent ,
canRedactOwn = true ,
canRedactOther = false ,
canSendMessage = true ,
canSendReaction = true ,
)
)
// val loadingState = awaitItem()
// assertThat(loadingState.target).isEqualTo(ActionListState.Target.Loading(messageEvent))
val successState = awaitItem ( )
@ -311,7 +416,15 @@ class ActionListPresenterTest {
@@ -311,7 +416,15 @@ class ActionListPresenterTest {
isMine = true ,
content = aTimelineItemStateEventContent ( ) ,
)
initialState . eventSink . invoke ( ActionListEvents . ComputeForMessage ( stateEvent , canRedact = false , canSendMessage = true , canSendReaction = true ) )
initialState . eventSink . invoke (
ActionListEvents . ComputeForMessage (
event = stateEvent ,
canRedactOwn = false ,
canRedactOther = false ,
canSendMessage = true ,
canSendReaction = true ,
)
)
// val loadingState = awaitItem()
// assertThat(loadingState.target).isEqualTo(ActionListState.Target.Loading(messageEvent))
val successState = awaitItem ( )
@ -341,7 +454,15 @@ class ActionListPresenterTest {
@@ -341,7 +454,15 @@ class ActionListPresenterTest {
isMine = true ,
content = aTimelineItemStateEventContent ( ) ,
)
initialState . eventSink . invoke ( ActionListEvents . ComputeForMessage ( stateEvent , canRedact = false , canSendMessage = true , canSendReaction = true ) )
initialState . eventSink . invoke (
ActionListEvents . ComputeForMessage (
event = stateEvent ,
canRedactOwn = false ,
canRedactOther = false ,
canSendMessage = true ,
canSendReaction = true ,
)
)
// val loadingState = awaitItem()
// assertThat(loadingState.target).isEqualTo(ActionListState.Target.Loading(messageEvent))
val successState = awaitItem ( )
@ -370,7 +491,15 @@ class ActionListPresenterTest {
@@ -370,7 +491,15 @@ class ActionListPresenterTest {
isMine = true ,
content = TimelineItemTextContent ( body = A _MESSAGE , htmlDocument = null , isEdited = false , formattedBody = null )
)
initialState . eventSink . invoke ( ActionListEvents . ComputeForMessage ( messageEvent , canRedact = false , canSendMessage = true , canSendReaction = true ) )
initialState . eventSink . invoke (
ActionListEvents . ComputeForMessage (
event = messageEvent ,
canRedactOwn = true ,
canRedactOther = false ,
canSendMessage = true ,
canSendReaction = true ,
)
)
// val loadingState = awaitItem()
// assertThat(loadingState.target).isEqualTo(ActionListState.Target.Loading(messageEvent))
val successState = awaitItem ( )
@ -408,10 +537,26 @@ class ActionListPresenterTest {
@@ -408,10 +537,26 @@ class ActionListPresenterTest {
content = TimelineItemRedactedContent ,
)
initialState . eventSink . invoke ( ActionListEvents . ComputeForMessage ( messageEvent , canRedact = false , canSendMessage = true , canSendReaction = true ) )
initialState . eventSink . invoke (
ActionListEvents . ComputeForMessage (
event = messageEvent ,
canRedactOwn = false ,
canRedactOther = false ,
canSendMessage = true ,
canSendReaction = true ,
)
)
assertThat ( awaitItem ( ) . target ) . isInstanceOf ( ActionListState . Target . Success :: class . java )
initialState . eventSink . invoke ( ActionListEvents . ComputeForMessage ( redactedEvent , canRedact = false , canSendMessage = true , canSendReaction = true ) )
initialState . eventSink . invoke (
ActionListEvents . ComputeForMessage (
event = redactedEvent ,
canRedactOwn = false ,
canRedactOther = false ,
canSendMessage = true ,
canSendReaction = true ,
)
)
awaitItem ( ) . run {
assertThat ( target ) . isEqualTo ( ActionListState . Target . None )
}
@ -432,7 +577,15 @@ class ActionListPresenterTest {
@@ -432,7 +577,15 @@ class ActionListPresenterTest {
content = TimelineItemTextContent ( body = A _MESSAGE , htmlDocument = null , isEdited = false , formattedBody = null ) ,
)
initialState . eventSink . invoke ( ActionListEvents . ComputeForMessage ( messageEvent , canRedact = false , canSendMessage = true , canSendReaction = true ) )
initialState . eventSink . invoke (
ActionListEvents . ComputeForMessage (
event = messageEvent ,
canRedactOwn = true ,
canRedactOther = false ,
canSendMessage = true ,
canSendReaction = true ,
)
)
val successState = awaitItem ( )
assertThat ( successState . target ) . isEqualTo (
ActionListState . Target . Success (
@ -460,7 +613,15 @@ class ActionListPresenterTest {
@@ -460,7 +613,15 @@ class ActionListPresenterTest {
isEditable = true ,
content = aTimelineItemPollContent ( answerItems = aPollAnswerItemList ( hasVotes = false ) ) ,
)
initialState . eventSink . invoke ( ActionListEvents . ComputeForMessage ( messageEvent , canRedact = false , canSendMessage = true , canSendReaction = true ) )
initialState . eventSink . invoke (
ActionListEvents . ComputeForMessage (
event = messageEvent ,
canRedactOwn = true ,
canRedactOther = false ,
canSendMessage = true ,
canSendReaction = true ,
)
)
val successState = awaitItem ( )
assertThat ( successState . target ) . isEqualTo (
ActionListState . Target . Success (
@ -489,7 +650,15 @@ class ActionListPresenterTest {
@@ -489,7 +650,15 @@ class ActionListPresenterTest {
isEditable = false ,
content = aTimelineItemPollContent ( answerItems = aPollAnswerItemList ( hasVotes = true ) ) ,
)
initialState . eventSink . invoke ( ActionListEvents . ComputeForMessage ( messageEvent , canRedact = false , canSendMessage = true , canSendReaction = true ) )
initialState . eventSink . invoke (
ActionListEvents . ComputeForMessage (
event = messageEvent ,
canRedactOwn = true ,
canRedactOther = false ,
canSendMessage = true ,
canSendReaction = true ,
)
)
val successState = awaitItem ( )
assertThat ( successState . target ) . isEqualTo (
ActionListState . Target . Success (
@ -517,7 +686,15 @@ class ActionListPresenterTest {
@@ -517,7 +686,15 @@ class ActionListPresenterTest {
isEditable = false ,
content = aTimelineItemPollContent ( isEnded = true ) ,
)
initialState . eventSink . invoke ( ActionListEvents . ComputeForMessage ( messageEvent , canRedact = false , canSendMessage = true , canSendReaction = true ) )
initialState . eventSink . invoke (
ActionListEvents . ComputeForMessage (
event = messageEvent ,
canRedactOwn = true ,
canRedactOther = false ,
canSendMessage = true ,
canSendReaction = true ,
)
)
val successState = awaitItem ( )
assertThat ( successState . target ) . isEqualTo (
ActionListState . Target . Success (
@ -543,7 +720,15 @@ class ActionListPresenterTest {
@@ -543,7 +720,15 @@ class ActionListPresenterTest {
isMine = true ,
content = aTimelineItemVoiceContent ( ) ,
)
initialState . eventSink . invoke ( ActionListEvents . ComputeForMessage ( messageEvent , canRedact = false , canSendMessage = true , canSendReaction = true ) )
initialState . eventSink . invoke (
ActionListEvents . ComputeForMessage (
event = messageEvent ,
canRedactOwn = true ,
canRedactOther = false ,
canSendMessage = true ,
canSendReaction = true ,
)
)
val successState = awaitItem ( )
assertThat ( successState . target ) . isEqualTo (
ActionListState . Target . Success (