mirror of
https://gh.wpcy.net/https://github.com/discourse/discourse.git
synced 2026-05-02 19:44:59 +08:00
49 lines
1.5 KiB
Ruby
49 lines
1.5 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
RSpec.describe "Viewport-based mobile mode" do
|
|
before { SiteSetting.viewport_based_mobile_mode = true }
|
|
|
|
it "has both stylesheets, and updates classes at runtime" do
|
|
visit "/"
|
|
|
|
mobile_stylesheet = find("link[rel=stylesheet][href*='stylesheets/mobile']", visible: false)
|
|
desktop_stylesheet = find("link[rel=stylesheet][href*='stylesheets/desktop']", visible: false)
|
|
|
|
expect(mobile_stylesheet["media"]).to include("max-width")
|
|
expect(desktop_stylesheet["media"]).to include("min-width")
|
|
|
|
expect(page).to have_css("html.desktop-view")
|
|
expect(page).not_to have_css("html.mobile-view")
|
|
|
|
resize_window(width: 400) do
|
|
expect(page).to have_css("html.mobile-view")
|
|
expect(page).not_to have_css("html.desktop-view")
|
|
end
|
|
end
|
|
|
|
context "when resizing viewport while on a topic page" do
|
|
fab!(:topic)
|
|
fab!(:post) { Fabricate(:post, topic:) }
|
|
|
|
it "handles navigation after resize from mobile to desktop" do
|
|
resize_window(width: 400) do
|
|
visit "/t/#{topic.slug}/#{topic.id}"
|
|
expect(page).to have_css("html.mobile-view")
|
|
end
|
|
|
|
click_logo
|
|
expect(page).to have_css(".topic-list")
|
|
end
|
|
|
|
it "handles navigation after resize from desktop to mobile" do
|
|
visit "/t/#{topic.slug}/#{topic.id}"
|
|
expect(page).to have_css("html.desktop-view")
|
|
|
|
resize_window(width: 400) do
|
|
expect(page).to have_css("html.mobile-view")
|
|
click_logo
|
|
expect(page).to have_css(".topic-list")
|
|
end
|
|
end
|
|
end
|
|
end
|