Marina López 0255bed6c4
✨ Add deployment info to events (#11867)
* ✨ Add deployment info to events

* ✨ Add get-environment-data RPC method

Add a single public RPC method returning the deployment type and
the enabled environment flags. It replaces get-deployment on the
management API and get-enabled-flags on the main API.

get-enabled-flags stays as a deprecated alias returning only the
flags, so existing callers keep working until it is removed.

The frontend event initialization now reads the flags from the new
method. The exposed flags stay limited to audit-log and telemetry
to avoid leaking internal backend flags.

AI-assisted-by: deepseek-v4.1-flash

---------

Co-authored-by: Andrey Antukh <niwi@niwi.nz>
2026-09-25 11:22:43 +02:00

44 lines
1.8 KiB
Clojure

;; This Source Code Form is subject to the terms of the Mozilla Public
;; License, v. 2.0. If a copy of the MPL was not distributed with this
;; file, You can obtain one at http://mozilla.org/MPL/2.0/.
;;
;; Copyright (c) KALEIDOS SUBSIDIARY SL
(ns frontend-tests.data.event-test
(:require
[app.main.data.event :as ev]
[app.main.repo :as rp]
[beicon.v2.core :as rx]
[cljs.test :as t :include-macros true]
[frontend-tests.helpers.async :as async]
[frontend-tests.helpers.mock :as mock]))
(t/deftest events-enabled?-truth-table
(t/testing "enabled when audit-log is present"
(t/is (true? (ev/events-enabled? #{:audit-log}))))
(t/testing "enabled when telemetry is present"
(t/is (true? (ev/events-enabled? #{:telemetry}))))
(t/testing "enabled when both are present"
(t/is (true? (ev/events-enabled? #{:audit-log :telemetry}))))
(t/testing "disabled when no event flag is present"
(t/is (false? (ev/events-enabled? #{})))
(t/is (false? (ev/events-enabled? #{:graph})))))
(t/deftest ^:async fetch-environment-data-uses-get-environment-data
(let [data (await
(mock/with-mocks*
{rp/cmd! (mock/stub
(fn [cmd]
(t/is (= :get-environment-data cmd))
(rx/of {:deployment "saas"
:flags #{:audit-log}})))}
(await (async/->promise (ev/fetch-environment-data)))))]
(t/is (= {:deployment "saas" :flags #{:audit-log}} data))))
(t/deftest ^:async fetch-environment-data-falls-back-to-telemetry-on-error
(let [data (await
(mock/with-mocks*
{rp/cmd! (mock/stub (fn [_cmd] (rx/throw (ex-info "boom" {}))))}
(await (async/->promise (ev/fetch-environment-data)))))]
(t/is (= {:flags #{:telemetry}} data))))