Un avviso ha un testo per lingua; per differenziare le piattaforme si creano due avvisi. L'app riceve già il copy risolto da Accept-Language. Co-authored-by: Cursor <cursoragent@cursor.com>
67 lines
2.4 KiB
Ruby
67 lines
2.4 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require "rails_helper"
|
|
|
|
RSpec.describe "Public site announcements", type: :request do
|
|
let!(:coach) do
|
|
User.create!(email: "news-coach@test.it", name: "Coach", password: "Password123", role: "coach")
|
|
end
|
|
|
|
it "mostra gli avvisi pubblici in home e non quelli privati" do
|
|
AppAnnouncement.create!(
|
|
kind: "maintenance", status: "published", title: "Manutenzione sito",
|
|
body: "Stasera il sito sarà offline.",
|
|
show_on_android: false, show_on_ios: false, show_on_web_public: true, show_on_web_private: false
|
|
)
|
|
AppAnnouncement.create!(
|
|
kind: "info", status: "published", title: "Solo soci",
|
|
body: "Messaggio interno.",
|
|
show_on_android: false, show_on_ios: false, show_on_web_public: false, show_on_web_private: true
|
|
)
|
|
|
|
get root_path
|
|
|
|
expect(response).to have_http_status(:ok)
|
|
expect(response.body).to include("Manutenzione sito")
|
|
expect(response.body).not_to include("Solo soci")
|
|
end
|
|
|
|
it "mostra la traduzione inglese sul sito pubblico" do
|
|
AppAnnouncement.create!(
|
|
kind: "maintenance", status: "published", title: "Manutenzione sito",
|
|
body: "Stasera il sito sarà offline.",
|
|
show_on_android: false, show_on_ios: false, show_on_web_public: true, show_on_web_private: false,
|
|
translations: {
|
|
"en" => { "title" => "Website maintenance", "body" => "The site will be offline tonight." }
|
|
}
|
|
)
|
|
|
|
cookies[:mltv_locale] = "en"
|
|
get root_path
|
|
|
|
expect(response).to have_http_status(:ok)
|
|
expect(response.body).to include("Website maintenance")
|
|
expect(response.body).not_to include("Manutenzione sito")
|
|
end
|
|
|
|
it "mostra gli avvisi privati nell'area account dopo il login" do
|
|
AppAnnouncement.create!(
|
|
kind: "info", status: "published", title: "Solo soci",
|
|
body: "Messaggio interno.",
|
|
show_on_android: false, show_on_ios: false, show_on_web_public: false, show_on_web_private: true
|
|
)
|
|
AppAnnouncement.create!(
|
|
kind: "info", status: "published", title: "Manutenzione sito",
|
|
body: "Stasera il sito sarà offline.",
|
|
show_on_android: false, show_on_ios: false, show_on_web_public: true, show_on_web_private: false
|
|
)
|
|
|
|
post public_login_path, params: { email: coach.email, password: "Password123" }
|
|
get public_account_path
|
|
|
|
expect(response).to have_http_status(:ok)
|
|
expect(response.body).to include("Solo soci")
|
|
expect(response.body).not_to include("Manutenzione sito")
|
|
end
|
|
end
|