diff --git a/R/create_dummy.R b/R/create_dummy.R
index 1fe3b81a00e5aac4d4335522ba849e6ef5f7cb9f..2284c5123e3c58b7bdc5dc93099adb5b0f444747 100644
--- a/R/create_dummy.R
+++ b/R/create_dummy.R
@@ -28,7 +28,7 @@
 #'              schema = "public",
 #'              table = "dummy",
 #'              pk = NULL,
-#'              id_range = "1:5"
+#'              id_range = "1:5",
 #'              role = "runner")
 #' }
 create_dummy <- function(host, database, schema, table, pk = NULL,
diff --git a/R/fix_encoding_variable.R b/R/fix_encoding_variable.R
index 6195ea0d8388e3ec61876ab5bbb9493c56d3103d..810026beefcd5a1dcfc5d2ddad3b10166836de87 100644
--- a/R/fix_encoding_variable.R
+++ b/R/fix_encoding_variable.R
@@ -1,27 +1,29 @@
 
 #' Corrige l'encodage pour une variable spécifiée dans un dataframe
 #'
-#' @description Cette fonction corrige l'encodage des caractères d'une variable 
+#' @description Cette fonction corrige l'encodage des caractères d'une variable
 #' spécifiée dans un dataframe de ISO-8859-1 à UTF-8.
 #'
 #' @param data Un dataframe contenant les données.
-#' @param variable Une chaîne de caractères spécifiant le nom de la 
+#' @param variable Une chaîne de caractères spécifiant le nom de la
 #' variable (colonne) dont l'encodage doit être corrigé.
 #'
-#' @return Un dataframe avec l'encodage de la variable spécifiée corrigé en 
+#' @return Un dataframe avec l'encodage de la variable spécifiée corrigé en
 #' UTF-8.
 #'
 #' @importFrom dplyr mutate
-#' 
+#'
 #' @export
 #' @examples
 #' \dontrun{
 #' # Utilisation de la fonction fix_encoding_variable()
-#' nitrate_analyse_esu_2023 <- fix_encoding_variable(nitrate_analyse_esu_2023, 
-#'                                                   "libelle_station")
-#'
-#' # Vérification de l'encodage corrigé
-#' head(nitrate_analyse_esu_2023$libelle_station)
+#' data_test <- data.frame(id = 1:3,
+#'                         libelle = c("Établissement A", "Forêt B", "Île C"),
+#'                         stringsAsFactors = FALSE)
+#' # Simuler un encodage ISO-8859-1
+#'data_test$libelle <- iconv(data_test$libelle, from = "UTF-8", to = "ISO-8859-1")
+#' # Correction de l'encodage
+#' data_test_corrige <- fix_encoding_variable(data_test, "libelle")
 #' }
 fix_encoding_variable <- function(data, variable) {
   # Vérifier si la variable existe dans le dataframe
@@ -31,6 +33,7 @@ fix_encoding_variable <- function(data, variable) {
 
   # Utiliser mutate pour corriger l'encodage de la variable spécifiée
   data |>
-    dplyr::mutate(variable = iconv(variable, from = "ISO-8859-1", to = "UTF-8"))
+    dplyr::mutate(!!variable := iconv(.data[[variable]],
+                                      from = "ISO-8859-1", to = "UTF-8"))
 }
 
diff --git a/R/import_and_merge_tables.R b/R/import_and_merge_tables.R
index ac35de3940a895337f001649159625dc3eaf7e23..f7133b7fac0d60ae7a42c61699becba3f409e94e 100644
--- a/R/import_and_merge_tables.R
+++ b/R/import_and_merge_tables.R
@@ -23,14 +23,14 @@
 #' @export
 #' @examples
 #' \dontrun{
-#' # Créer une table dummy dans le schéma collectr de la base production
+#' # Créer une table source dans le schéma public de la base collectr
 #' create_dummy(host = "localhost",
 #'              database = "collectr",
 #'              schema = "public",
 #'              table = "source",
 #'              pk = "id",
 #'              role = "runner")
-#' # Créer une table dummy dans le schéma collectr de la base production
+#' # Créer une table target dans le schéma public de la base collectr
 #' create_dummy(host = "localhost",
 #'              database = "collectr",
 #'              schema = "public",
diff --git a/R/insert_into_table.R b/R/insert_into_table.R
index 9083407b12e3c31ffc50fbe737e9fbf3dc22434c..1e3b040fb13f27b378eed2db5bd11cc291227358 100644
--- a/R/insert_into_table.R
+++ b/R/insert_into_table.R
@@ -1,19 +1,20 @@
 
 #' Insère un dataframe dans une table existante
 #'
-#' @description Fonction pour insérer les données d'un dataframe dans une table 
-#' existante d'une base de données PostgreSQL, en vérifiant la correspondance 
-#' de la structure entre le dataframe et la table. Si la correspondance est 
+#' @description Fonction pour insérer les données d'un dataframe dans une table
+#' existante d'une base de données PostgreSQL, en vérifiant la correspondance
+#' de la structure entre le dataframe et la table. Si la correspondance est
 #' vérifiée, les données sont insérées dans la table. Si la correspondance
 #' n'est pas vérifiée les différences de strcture entre le dataframe et la table
 #' sont listées.
 #'
+#' @param host Hôte de la base de données PostgreSQL.
 #' @param database Nom de la base de données.
 #' @param schema Le schéma de la table dans la base de données.
 #' @param table Le nom de la table existante dans la base de données.
 #' @param dataframe Le dataframe contenant les données à insérer.
 #' @param role Le rôle du propriétaire de la table.
-#' 
+#'
 #' @return Le nombre de lignes insérées dans la table en base.
 #'
 #' @importFrom datalibaba connect_to_db
@@ -23,54 +24,61 @@
 #' @export
 #' @examples
 #' \dontrun{
-#' # Création d'un dataframe à partir d'un fichier XLSX
-#' data_ars_2022 <- collectr::import_xlsx(
-#'   filepath = "C:\\TEMP\\Nitrates_2022.xlsx",
-#'   sheet = 1,
-#'   row = 1)
-#'
-#' # Ajout d'un champs de géométrie
-#' data_ars_2022 <- data_ars_2022 |>
-#'   dplyr::select(-coord_x,-coord_y) |>
-#'   dplyr::mutate(eligible_ades = rep(NA, dplyr::n()))
-#'
+#' # Créer une dataframe source
+#' source <- data.frame(
+#'   id = 6:10,
+#'   name = c("Alice", "Bob", "Charlie", "David", "Eve"),
+#'   birthdate = c("1990-01-15", "1985-06-22", "1992-09-10", "1988-03-05", "1995-12-30"),
+#'   value = rnorm(5)
+#' )
+#' # Créer une table target dans le schéma public de la base collectr
+#' create_dummy(host = "localhost",
+#'              database = "collectr",
+#'              schema = "public",
+#'              table = "target",
+#'              pk = "id",
+#'              id_range = "1:5",
+#'              role = "runner")
 #' # Utilisation de la fonction insert_into_table()
-#' insert_into_table(database = "si_eau",
-#'                   schema = "nitrates",
-#'                   table = "nitrate_data_analyse_ars_test",
-#'                   dataframe = data_ars_2022,
-#'                   role = "admin")
+#' insert_into_table(host = "localhost",
+#'                   database = "collectr",
+#'                   schema = "public",
+#'                   table = "target",
+#'                   dataframe = source,
+#'                   role = "runner")
 #' }
-insert_into_table <- function(database, schema, table, dataframe, role) {
+insert_into_table <- function(host, database, schema, table, dataframe, role) {
   # Se connecter à la base de données PostgreSQL
-  connexion <- datalibaba::connect_to_db(db = database, 
-                                         user = role, 
+  connexion <- datalibaba::connect_to_db(server = host,
+                                         db = database,
+                                         user = role,
                                          ecoSQL = FALSE)
-  
+
   # Vérifier si la table existe dans la base de données
-  if (!table_exists(database = database, schema = schema, table = table, role = role)) {
+  if (!table_exists(host = host, database = database, schema = schema,
+                    table = table, role = role)) {
     stop("La table sp\u00e9cifi\u00e9e n\'existe pas dans la base de donn\u00e9es.")
   }
 
-  # Vérifier si les attributs correspondent 
-  if (!check_structure_table(database = database, schema = schema, 
-                             table = table, dataframe = dataframe, 
+  # Vérifier si les attributs correspondent
+  if (!check_structure_table(host = host, database = database, schema = schema,
+                             table = table, dataframe = dataframe,
                              role = role)) {
     return(FALSE)
   }
 
   # Utiliser sqlAppendTable pour préparer la requête d'insertion
   insert_query <- DBI::sqlAppendTable(connexion,
-                                    DBI::Id(schema = schema, table = table),
-                                    dataframe,
-                                    row.names = FALSE)
+                                      DBI::Id(schema = schema, table = table),
+                                      dataframe,
+                                      row.names = FALSE)
 
   # Exécuter la requête d'insertion
   result <- DBI::dbExecute(connexion, insert_query)
 
   # Se déconnecter de la base de données
   DBI::dbDisconnect(connexion)
-  
+
   # Renvoyer le nombre de lignes insérées
   return(result)
 }
diff --git a/dev/0-dev_history.Rmd b/dev/0-dev_history.Rmd
index 9309763eb6a8369ff7c574f25bdefd434e024582..d87a597ccf883275ddbcb57d4289d6ab7ccb5318 100644
--- a/dev/0-dev_history.Rmd
+++ b/dev/0-dev_history.Rmd
@@ -80,6 +80,7 @@ usethis::use_r("close_all_connections")
 usethis::use_r("create_dummy")
 usethis::use_r("create_schema")
 usethis::use_r("download_and_extract_wfs")
+usethis::use_r("fix_encoding_variable")
 usethis::use_r("format_colnames")
 usethis::use_r("format_filepath")
 usethis::use_r("get_variable_completion_rate")
@@ -87,6 +88,7 @@ usethis::use_r("import_and_merge_tables")
 usethis::use_r("import_geopackage")
 usethis::use_r("import_shapefile")
 usethis::use_r("import_xlsx")
+usethis::use_r("insert_into_table")
 usethis::use_r("modify_column_type")
 usethis::use_r("remove_special_chars")
 usethis::use_r("rename_field")
@@ -103,6 +105,7 @@ usethis::use_test("close_all_connections")
 usethis::use_test("create_dummy")
 usethis::use_test("create_schema")
 usethis::use_test("download_and_extract_wfs")
+usethis::use_test("fix_encoding_variable")
 usethis::use_test("format_colnames")
 usethis::use_test("format_filepath")
 usethis::use_test("get_variable_completion_rate")
@@ -110,6 +113,7 @@ usethis::use_test("import_and_merge_tables")
 usethis::use_test("import_geopackage")
 usethis::use_test("import_shapefile")
 usethis::use_test("import_xlsx")
+usethis::use_test("insert_into_table")
 usethis::use_test("modify_column_type")
 usethis::use_test("remove_special_chars")
 usethis::use_test("rename_field")
diff --git a/man/create_dummy.Rd b/man/create_dummy.Rd
index 0fb84ed23786d3895f9e0eb25d303cb79b4fd0c4..c9d0d8d2fb4ddb90a559fdadbe7d7ead9460588c 100644
--- a/man/create_dummy.Rd
+++ b/man/create_dummy.Rd
@@ -36,7 +36,7 @@ create_dummy(host = "localhost",
              schema = "public",
              table = "dummy",
              pk = NULL,
-             id_range = "1:5"
+             id_range = "1:5",
              role = "runner")
 }
 }
diff --git a/man/fix_encoding_variable.Rd b/man/fix_encoding_variable.Rd
index c0cf7def3bd8a14bda9a013a61a972f9482d96e3..9179a5a1c11e332da96670b4518245f9d4b89c05 100644
--- a/man/fix_encoding_variable.Rd
+++ b/man/fix_encoding_variable.Rd
@@ -23,10 +23,12 @@ spécifiée dans un dataframe de ISO-8859-1 à UTF-8.
 \examples{
 \dontrun{
 # Utilisation de la fonction fix_encoding_variable()
-nitrate_analyse_esu_2023 <- fix_encoding_variable(nitrate_analyse_esu_2023, 
-                                                  "libelle_station")
-
-# Vérification de l'encodage corrigé
-head(nitrate_analyse_esu_2023$libelle_station)
+data_test <- data.frame(id = 1:3,
+                        libelle = c("Établissement A", "Forêt B", "Île C"),
+                        stringsAsFactors = FALSE)
+# Simuler un encodage ISO-8859-1
+data_test$libelle <- iconv(data_test$libelle, from = "UTF-8", to = "ISO-8859-1")
+# Correction de l'encodage
+data_test_corrige <- fix_encoding_variable(data_test, "libelle")
 }
 }
diff --git a/man/import_and_merge_tables.Rd b/man/import_and_merge_tables.Rd
index 274bad8e5797a08cca18c463f2d981b459bcd522..36abe6c58f75e08342f0f7b772fa5c155122a412 100644
--- a/man/import_and_merge_tables.Rd
+++ b/man/import_and_merge_tables.Rd
@@ -41,14 +41,14 @@ ou l'autre des tables.
 }
 \examples{
 \dontrun{
-# Créer une table dummy dans le schéma collectr de la base production
+# Créer une table source dans le schéma public de la base collectr
 create_dummy(host = "localhost",
              database = "collectr",
              schema = "public",
              table = "source",
              pk = "id",
              role = "runner")
-# Créer une table dummy dans le schéma collectr de la base production
+# Créer une table target dans le schéma public de la base collectr
 create_dummy(host = "localhost",
              database = "collectr",
              schema = "public",
diff --git a/man/insert_into_table.Rd b/man/insert_into_table.Rd
index 1a1e7b1229af9fd862d0f8553dccc380c831f92a..9237157076b45e34201277af3970988a55bccb43 100644
--- a/man/insert_into_table.Rd
+++ b/man/insert_into_table.Rd
@@ -4,9 +4,11 @@
 \alias{insert_into_table}
 \title{Insère un dataframe dans une table existante}
 \usage{
-insert_into_table(database, schema, table, dataframe, role)
+insert_into_table(host, database, schema, table, dataframe, role)
 }
 \arguments{
+\item{host}{Hôte de la base de données PostgreSQL.}
+
 \item{database}{Nom de la base de données.}
 
 \item{schema}{Le schéma de la table dans la base de données.}
@@ -30,22 +32,27 @@ sont listées.
 }
 \examples{
 \dontrun{
-# Création d'un dataframe à partir d'un fichier XLSX
-data_ars_2022 <- collectr::import_xlsx(
-  filepath = "C:\\\\TEMP\\\\Nitrates_2022.xlsx",
-  sheet = 1,
-  row = 1)
-
-# Ajout d'un champs de géométrie
-data_ars_2022 <- data_ars_2022 |>
-  dplyr::select(-coord_x,-coord_y) |>
-  dplyr::mutate(eligible_ades = rep(NA, dplyr::n()))
-
+# Créer une dataframe source
+source <- data.frame(
+  id = 6:10,
+  name = c("Alice", "Bob", "Charlie", "David", "Eve"),
+  birthdate = c("1990-01-15", "1985-06-22", "1992-09-10", "1988-03-05", "1995-12-30"),
+  value = rnorm(5)
+)
+# Créer une table target dans le schéma public de la base collectr
+create_dummy(host = "localhost",
+             database = "collectr",
+             schema = "public",
+             table = "target",
+             pk = "id",
+             id_range = "1:5",
+             role = "runner")
 # Utilisation de la fonction insert_into_table()
-insert_into_table(database = "si_eau",
-                  schema = "nitrates",
-                  table = "nitrate_data_analyse_ars_test",
-                  dataframe = data_ars_2022,
-                  role = "admin")
+insert_into_table(host = "localhost",
+                  database = "collectr",
+                  schema = "public",
+                  table = "target",
+                  dataframe = source,
+                  role = "runner")
 }
 }
diff --git a/tests/testthat/test-fix_encoding_variable.R b/tests/testthat/test-fix_encoding_variable.R
new file mode 100644
index 0000000000000000000000000000000000000000..76bb740e609b580d0630fa2427fa6ec39e4ada1c
--- /dev/null
+++ b/tests/testthat/test-fix_encoding_variable.R
@@ -0,0 +1,31 @@
+test_that("fix_encoding_variable works", {
+  # Création d'un dataframe d'exemple avec encodage ISO-8859-1
+  data_test <- data.frame(
+    id = 1:3,
+    libelle = c("Établissement A", "Forêt B", "Île C"),
+    stringsAsFactors = FALSE
+  )
+
+  # Simuler un encodage ISO-8859-1
+  data_test$libelle <- iconv(data_test$libelle, from = "UTF-8", to = "ISO-8859-1")
+
+  # Vérification avant correction
+  # expect_true(all(Encoding(data_test$libelle) == "latin1"))
+
+  # Application de la correction
+  data_test_corrige <- fix_encoding_variable(data_test, "libelle")
+
+  # Vérification après correction
+  expect_true(all(Encoding(data_test_corrige$libelle) == "UTF-8"))
+
+  # Vérification du contenu inchangé
+  expect_equal(data_test_corrige$libelle, c("Établissement A", "Forêt B", "Île C"))
+})
+
+test_that("fix_encoding_variable fails", {
+  data_test <- data.frame(id = 1:3, nom = c("A", "B", "C"))
+
+  # Vérifie que la fonction renvoie une erreur
+  expect_error(fix_encoding_variable(data_test, "libelle"),
+               "La variable libelle n'existe pas dans le dataframe.")
+})
diff --git a/tests/testthat/test-insert_into_table.R b/tests/testthat/test-insert_into_table.R
new file mode 100644
index 0000000000000000000000000000000000000000..43f037ca92976d51f71e5372d734dffbe8dc8cff
--- /dev/null
+++ b/tests/testthat/test-insert_into_table.R
@@ -0,0 +1,47 @@
+test_that("insert_into_table works", {
+
+  Sys.setenv(user_runner="runner")
+  Sys.setenv(pwd_runner=Sys.getenv("BDD_RUNNER_PWD"))
+
+  # Création d'un dataframe fictif
+  source <- data.frame(
+    id = 6:10,
+    name = c("Alice", "Bob", "Charlie", "David", "Eve"),
+    birthdate = c("1990-01-15", "1985-06-22", "1992-09-10", "1988-03-05", "1995-12-30"),
+    value = rnorm(5)
+  )
+  # Créer une table target dans le schéma public de la base collectr
+  create_dummy(host = "localhost",
+               database = "collectr",
+               schema = "public",
+               table = "target",
+               pk = "id",
+               id_range = "1:5",
+               role = "runner")
+
+  expect_equal(object = insert_into_table(host = "localhost", database = "collectr",
+                                          schema = "public", table = "target",
+                                          dataframe = source, role = "runner"),
+               expected = 5)
+
+  expect_error(object = insert_into_table(host = "localhost", database = "collectr",
+                                          schema = "public", table = "ghost",
+                                          dataframe = source, role = "runner"),
+               regexp = "La table sp\u00e9cifi\u00e9e n\'existe pas dans la base de donn\u00e9es.")
+
+  # Création d'un dataframe avec une structure différente de la table
+  df <- data.frame(id = 1:5, name = letters[1:5], value = rnorm(5))
+
+  # Créer une table target dans le schéma public de la base collectr
+  create_dummy(host = "localhost",
+               database = "collectr",
+               schema = "public",
+               table = "target",
+               pk = "id",
+               id_range = "1:5",
+               role = "runner")
+
+  expect_false(insert_into_table(host = "localhost", database = "collectr",
+                                 schema = "public", table = "target",
+                                 dataframe = df, role = "runner"))
+})
diff --git a/vignettes/write-data.Rmd b/vignettes/write-data.Rmd
index 3dc8cae0865834d9cc97be434a080b6d38f04219..bc38cf7890035344d4d112b61f29ddd7ea63abf7 100644
--- a/vignettes/write-data.Rmd
+++ b/vignettes/write-data.Rmd
@@ -59,23 +59,28 @@ archive_table(host = "localhost",
 
 ```{r examples-insert_into_table, eval=FALSE}
 #' \dontrun{
-# Création d'un dataframe à partir d'un fichier XLSX
-data_ars_2022 <- collectr::import_xlsx(
-  filepath = "C:\\TEMP\\Nitrates_2022.xlsx",
-  sheet = 1,
-  row = 1)
-
-# Ajout d'un champs de géométrie
-data_ars_2022 <- data_ars_2022 |>
-  dplyr::select(-coord_x,-coord_y) |>
-  dplyr::mutate(eligible_ades = rep(NA, dplyr::n()))
-
-# Utilisation de la fonction insert_into_table()
-insert_into_table(database = "si_eau",
-                  schema = "nitrates",
-                  table = "nitrate_data_analyse_ars_test",
-                  dataframe = data_ars_2022,
-                  role = "admin")
+# Créer une dataframe source
+ source <- data.frame(
+   id = 6:10,
+   name = c("Alice", "Bob", "Charlie", "David", "Eve"),
+   birthdate = c("1990-01-15", "1985-06-22", "1992-09-10", "1988-03-05", "1995-12-30"),
+   value = rnorm(5)
+ )
+ # Créer une table target dans le schéma public de la base collectr
+ create_dummy(host = "localhost",
+              database = "collectr",
+              schema = "public",
+              table = "target",
+              pk = "id",
+              id_range = "1:5",
+              role = "runner")
+ # Utilisation de la fonction insert_into_table()
+ insert_into_table(host = "localhost",
+                   database = "collectr",
+                   schema = "public",
+                   table = "target",
+                   dataframe = source,
+                   role = "runner")
 #' }
 ```