Skip to content

Commit

Permalink
Add test
Browse files Browse the repository at this point in the history
  • Loading branch information
luciajanikova committed Feb 5, 2025
1 parent 8031370 commit 580ae9f
Show file tree
Hide file tree
Showing 6 changed files with 143 additions and 5 deletions.
2 changes: 1 addition & 1 deletion app/jobs/add_inbox_tag_to_thread_job.rb
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,6 @@ def perform(message_thread)
private

def significant_inbox_message?(message)
!message.outbox? && !Govbox::Message::INFORMATIONAL_MESSAGE_CLASSES.include?(message.metadata.dig('edesk_class'))
!message.outbox? && !Govbox::Message::INSIGNIFICANT_MESSAGE_CLASSES.include?(message.metadata.dig('edesk_class'))
end
end
4 changes: 2 additions & 2 deletions app/models/govbox/message.rb
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ class Govbox::Message < ApplicationRecord

EGOV_DOCUMENT_CLASS = 'EGOV_DOCUMENT'
EGOV_NOTIFICATION_CLASS = 'EGOV_NOTIFICATION'
INFORMATIONAL_MESSAGE_CLASSES = ['ED_DELIVERY_REPORT', 'POSTING_CONFIRMATION', 'POSTING_INFORMATION']
INSIGNIFICANT_MESSAGE_CLASSES = ['ED_DELIVERY_REPORT', 'POSTING_CONFIRMATION', 'POSTING_INFORMATION']
GENERAL_AGENDA_SCHEMA = 'http://schemas.gov.sk/form/App.GeneralAgenda/1.9'

DELIVERY_NOTIFICATION_TAG = 'delivery_notification'
Expand Down Expand Up @@ -75,7 +75,7 @@ def read?
end

def insignificant?
payload["class"].in?(INFORMATIONAL_MESSAGE_CLASSES)
payload["class"].in?(INSIGNIFICANT_MESSAGE_CLASSES)
end

def delivery_notification
Expand Down
94 changes: 93 additions & 1 deletion test/fixtures/govbox/messages.yml
Original file line number Diff line number Diff line change
Expand Up @@ -323,7 +323,7 @@ ssd_done_new:
class: FORM
content: Dummy

ssd_posting_confirmation:
ssd_main_done_posting_confirmation:
message_id: <%= SecureRandom.uuid %>
correlation_id: d2d6ab13-347e-49f4-9c3b-0b8390430870
edesk_message_id: 102
Expand All @@ -345,3 +345,95 @@ ssd_posting_confirmation:
signed: false
class: FORM
content: Dummy

ssd_egov_application:
message_id: <%= SecureRandom.uuid %>
correlation_id: f932fd8b-c996-4eb8-ba6c-af7714ef4069
edesk_message_id: 103
delivered_at: <%= DateTime.current %>
edesk_class: EGOV_APPLICATION
folder: ssd_sent
payload:
message_id: <%= SecureRandom.uuid %>
subject: MySubject
sender_name: MySender
sender_uri: MySenderURI
recipient_name: MyRecipient
delivered_at: <%= DateTime.current.to_s %>
original_html: MyHtml
class: EGOV_APPLICATION
objects:
- name: form
mime_type: application/x-eform-xml
signed: false
class: FORM
content: Dummy

ssd_posting_confirmation:
message_id: <%= SecureRandom.uuid %>
correlation_id: f932fd8b-c996-4eb8-ba6c-af7714ef4069
edesk_message_id: 104
delivered_at: <%= DateTime.current %>
edesk_class: POSTING_CONFIRMATION
folder: ssd_one
payload:
message_id: <%= SecureRandom.uuid %>
subject: MySubject
sender_name: MySender
sender_uri: MySenderURI
recipient_name: MyRecipient
delivered_at: <%= DateTime.current.to_s %>
original_html: MyHtml
class: POSTING_CONFIRMATION
objects:
- name: form
mime_type: application/x-eform-xml
signed: false
class: FORM
content: Dummy

ssd_delivery_report:
message_id: <%= SecureRandom.uuid %>
correlation_id: f932fd8b-c996-4eb8-ba6c-af7714ef4069
edesk_message_id: 105
delivered_at: <%= DateTime.current %>
edesk_class: ED_DELIVERY_REPORT
folder: ssd_one
payload:
message_id: <%= SecureRandom.uuid %>
subject: MySubject
sender_name: MySender
sender_uri: MySenderURI
recipient_name: MyRecipient
delivered_at: <%= DateTime.current.to_s %>
original_html: MyHtml
class: ED_DELIVERY_REPORT
objects:
- name: form
mime_type: application/x-eform-xml
signed: false
class: FORM
content: Dummy

ssd_egov_document:
message_id: <%= SecureRandom.uuid %>
correlation_id: f932fd8b-c996-4eb8-ba6c-af7714ef4069
edesk_message_id: 106
delivered_at: <%= DateTime.current %>
edesk_class: EGOV_DOCUMENT
folder: ssd_one
payload:
message_id: <%= SecureRandom.uuid %>
subject: MySubject
sender_name: MySender
sender_uri: MySenderURI
recipient_name: MyRecipient
delivered_at: <%= DateTime.current.to_s %>
original_html: MyHtml
class: EGOV_DOCUMENT
objects:
- name: form
mime_type: application/x-eform-xml
signed: false
class: FORM
content: Dummy
18 changes: 18 additions & 0 deletions test/fixtures/tags.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,12 @@ ssd_everything:
visible: false
tenant: ssd

ssd_inbox:
name: Inbox
type: InboxTag
visible: false
tenant: ssd

ssd_signed_externally:
name: SignedExternally
type: SignedExternallyTag
Expand Down Expand Up @@ -187,6 +193,12 @@ solver_everything:
visible: false
tenant: solver

solver_inbox:
name: Inbox
type: InboxTag
visible: false
tenant: solver

ssd_basic_user_drafts:
name: Drafts-Basic user
owner: basic
Expand Down Expand Up @@ -240,6 +252,12 @@ accountants_everything:
visible: false
tenant: accountants

accountants_inbox:
name: Inbox
type: InboxTag
visible: false
tenant: accountants

accountants_signature_requested:
name: Na podpis
type: SignatureRequestedTag
Expand Down
2 changes: 1 addition & 1 deletion test/models/automation/rule_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ class Automation::RuleTest < ActiveSupport::TestCase
test 'should not run an automation on message created outbox BooleanCondition, edesk_class MessageMetadataValueNotCondition UnassignMessageThreadTagAction if POSTING_CONFIRMATION delivered' do
tag = tags(:ssd_done)
message_thread = message_threads(:ssd_main_done)
govbox_message = govbox_messages(:ssd_posting_confirmation)
govbox_message = govbox_messages(:ssd_main_done_posting_confirmation)

govbox_message.update_column(:correlation_id, 'd2d6ab13-347e-49f4-9c3b-0b8390430870')

Expand Down
28 changes: 28 additions & 0 deletions test/models/govbox/message_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,34 @@ class Govbox::MessageTest < ActiveSupport::TestCase
assert_equal message.recipient_name, "SSD main"
end

test "#create_message_with_thread! should handle adding inbox tag to thread" do
Govbox::Message.create_message_with_thread!(govbox_messages(:ssd_egov_application))

message_thread = MessageThread.last

# Inbox tag not added when outbox message processed
assert_not message_thread.tags.include?(tags(:ssd_inbox))

Govbox::Message.create_message_with_thread!(govbox_messages(:ssd_posting_confirmation))
# Inbox tag not added when insignificant inbox message processed
assert_not message_thread.tags.include?(tags(:ssd_inbox))

Govbox::Message.create_message_with_thread!(govbox_messages(:ssd_delivery_report))
# Inbox tag not added when another insignificant inbox message processed
assert_not message_thread.tags.include?(tags(:ssd_inbox))

# Outbox or insignificant messages are automatically marked read
assert message_thread.messages.reload.all?{|m| m.read?}

Govbox::Message.create_message_with_thread!(govbox_messages(:ssd_egov_document))
# Inbox tag is added when significant inbox message processed
assert message_thread.tags.include?(tags(:ssd_inbox))

# Significant inbox messages is marked unread
assert_not message_thread.messages.reload.all?{|m| m.read?}
assert_not message_thread.messages.last.read?
end

test "#create_message_with_thread! should include general agenda subject in message title" do
govbox_message = govbox_messages(:ssd_general_agenda)

Expand Down

0 comments on commit 580ae9f

Please sign in to comment.