From 181b6c4084b2640719c4326be36afacea61d80df Mon Sep 17 00:00:00 2001
From: Kalash Singhal <125359076+kalashsinghal@users.noreply.github.com>
Date: Mon, 17 Jun 2024 09:38:30 +0200
Subject: [PATCH] refactor (#21)

---
 R/add_transition_risk_category.R               |  2 +-
 .../test-add_transition_risk_category.R        | 18 ++++++++++++++++++
 2 files changed, 19 insertions(+), 1 deletion(-)

diff --git a/R/add_transition_risk_category.R b/R/add_transition_risk_category.R
index 2211acb..9e35d21 100644
--- a/R/add_transition_risk_category.R
+++ b/R/add_transition_risk_category.R
@@ -33,7 +33,7 @@ add_transition_risk_category <- function(data) {
 
   mutate(data, transition_risk_category = ifelse(
     is.na(.data[[col_transition_risk_score()]]),
-    NA,
+    NA_character_,
     categorize_risk(
       .data[[col_transition_risk_score()]],
       .data[[col_tr_low_threshold()]],
diff --git a/tests/testthat/test-add_transition_risk_category.R b/tests/testthat/test-add_transition_risk_category.R
index 6eba8e8..541c715 100644
--- a/tests/testthat/test-add_transition_risk_category.R
+++ b/tests/testthat/test-add_transition_risk_category.R
@@ -21,3 +21,21 @@ test_that("if input data lacks crucial columns, errors gracefully", {
   bad <- select(input_data, -all_of(crucial))
   expect_error(add_transition_risk_category(bad), crucial)
 })
+
+test_that("if `transition_risk_category` column has only NAs, then class of the column is `character`", {
+  co2 <- read_csv(toy_emissions_profile_products_ecoinvent()) |>
+    filter(activity_uuid_product_uuid != "76269c17-78d6-420b-991a-aa38c51b45b7")
+  all_activities_scenario_sectors <- read_csv(toy_all_activities_scenario_sectors()) |>
+    filter(activity_uuid_product_uuid == "76269c17-78d6-420b-991a-aa38c51b45b7")
+  scenarios <- read_csv(toy_sector_profile_any_scenarios())
+
+  output <- add_thresholds_transition_risk(
+    co2,
+    all_activities_scenario_sectors,
+    scenarios
+  ) |>
+    add_transition_risk_category()
+
+  expected_class <- "character"
+  expect_equal(class(output$transition_risk_category), expected_class)
+})