diff --git a/app/assets/stylesheets/tables-report.css.scss b/app/assets/stylesheets/tables-report.css.scss index 71094a32411..4b60f103ed4 100644 --- a/app/assets/stylesheets/tables-report.css.scss +++ b/app/assets/stylesheets/tables-report.css.scss @@ -1,6 +1,7 @@ @forward 'uswds-core'; @forward 'usa-prose'; @forward 'usa-table'; +@forward 'usa-alert'; .table-number { font-variant-numeric: tabular-nums; diff --git a/app/jobs/reports/monthly_key_metrics_report.rb b/app/jobs/reports/monthly_key_metrics_report.rb index 2625f447954..c2057ebc44a 100644 --- a/app/jobs/reports/monthly_key_metrics_report.rb +++ b/app/jobs/reports/monthly_key_metrics_report.rb @@ -36,14 +36,30 @@ def perform(date = Time.zone.yesterday) # Explanatory text to go before the report in the email # @return [String] - def preamble - <<~HTML.html_safe # rubocop:disable Rails/OutputSafety + def preamble(env: Identity::Hostdata.env || 'local') + ERB.new(<<~ERB).result(binding).html_safe # rubocop:disable Rails/OutputSafety + <% if env != 'prod' %> +
+ This was generated in the <%= env %> environment. +
+For more information on how each of these metrics are calculated, take a look at our Monthly Key Metrics Report Explainer document.
- HTML + ERB end def reports diff --git a/spec/jobs/reports/monthly_key_metrics_report_spec.rb b/spec/jobs/reports/monthly_key_metrics_report_spec.rb index 318df3e7403..a11f14a413a 100644 --- a/spec/jobs/reports/monthly_key_metrics_report_spec.rb +++ b/spec/jobs/reports/monthly_key_metrics_report_spec.rb @@ -113,12 +113,26 @@ end describe '#preamble' do - subject(:preamble) { report.preamble } + let(:env) { 'prod' } + subject(:preamble) { report.preamble(env:) } it 'has a preamble that is valid HTML' do expect(preamble).to be_html_safe expect { Nokogiri::XML(preamble) { |config| config.strict } }.to_not raise_error end + + context 'in a non-prod environment' do + let(:env) { 'staging' } + + it 'has an alert with the environment name' do + expect(preamble).to be_html_safe + + doc = Nokogiri::XML(preamble) + + alert = doc.at_css('.usa-alert') + expect(alert.text).to include(env) + end + end end end