discourse/plugins/discourse-narrative-bot/spec/system/user_spec.rb
Alan Guo Xiang Tan 848af05537
DEV: Fix failing system tests (#28970)
We are seeing the following error on CI:

```
Errno::EADDRNOTAVAIL:
  Failed to open TCP connection to localhost:31337 (Cannot assign requested address - connect(2) for "localhost" port 31337)
```

This is because the job being enqueued makes a HTTP request to the Rails
server but Capybara doesn't start the Rails server until a session is
actually required. Therefore, we need to enqueue the job after we are
sure that a session has been started.
2024-09-19 10:12:38 +08:00

35 lines
1.0 KiB
Ruby

# frozen_string_literal: true
describe "Narrative Bot PM", type: :system do
fab!(:admin)
fab!(:user)
fab!(:topics) { Fabricate.times(2, :post).map(&:topic) }
fab!(:posts) { Fabricate.times(3, :post, topic: topics[0]) }
context "when user tips are enabled" do
before do
Jobs.run_immediately!
SiteSetting.enable_user_tips = true
SiteSetting.discourse_narrative_bot_enabled = true
end
it "does not delete the narrative bot PM when skipping all tips" do
sign_in user
# shortcut to generate welcome post since we're not going through user creation or first login
user.enqueue_bot_welcome_post
visit "/"
tooltip = PageObjects::Components::Tooltips.new("user-tip")
tooltip.find(".btn", text: "Skip tips").click
expect(tooltip).to be_not_present
expect(page).to have_css(".badge-notification.new-pms")
find("#toggle-current-user").click
expect(page).to have_css(".notification.unread.private-message", text: "Greetings!")
end
end
end