# 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