diff --git a/.secureli/.pre-commit-config.yaml b/.secureli/.pre-commit-config.yaml
index 49aeb1b9..3fa2556f 100644
--- a/.secureli/.pre-commit-config.yaml
+++ b/.secureli/.pre-commit-config.yaml
@@ -1,18 +1,18 @@
# See https://pre-commit.com for more information
# See https://pre-commit.com/hooks.html for more hooks
repos:
-- repo: https://github.com/pre-commit/pre-commit-hooks
- rev: v4.6.0
- hooks:
- - id: trailing-whitespace
- - id: end-of-file-fixer
- - id: check-yaml
- - id: check-added-large-files
-- repo: https://github.com/psf/black-pre-commit-mirror
- rev: 24.4.2
- hooks:
- - id: black
-- repo: https://github.com/yelp/detect-secrets
- rev: v1.4.0
- hooks:
- - id: detect-secrets
+ - repo: https://github.com/pre-commit/pre-commit-hooks
+ rev: v4.6.0
+ hooks:
+ - id: trailing-whitespace
+ - id: end-of-file-fixer
+ - id: check-yaml
+ - id: check-added-large-files
+ - repo: https://github.com/psf/black-pre-commit-mirror
+ rev: 24.4.2
+ hooks:
+ - id: black
+ - repo: https://github.com/yelp/detect-secrets
+ rev: v1.4.0
+ hooks:
+ - id: detect-secrets
diff --git a/pyproject.toml b/pyproject.toml
index 5f8b3d6c..1301fdc5 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -28,6 +28,7 @@ lint = "black --check ."
precommit = "pre-commit run --config .secureli/.pre-commit-config.yaml --all-files"
test = ["init", "lint", "coverage_run", "coverage_report"]
e2e = "bats --verbose-run tests/end-to-end"
+lang-test = "bats --verbose-run tests/end-to-end/test-language-detect.bats"
[tool.poetry.dependencies]
# Until `python-dependency-injector` supports python 3.12, restrict to python 3.11 and lower
diff --git a/tests/end-to-end/test-data/Csharp_Sample/src/Program.cs b/tests/end-to-end/test-data/Csharp_Sample/src/Program.cs
new file mode 100644
index 00000000..6e1130f5
--- /dev/null
+++ b/tests/end-to-end/test-data/Csharp_Sample/src/Program.cs
@@ -0,0 +1,9 @@
+using System;
+
+class Program
+{
+ static void Main(string[] args)
+ {
+ Console.WriteLine("Hello, world!");
+ }
+}
diff --git a/tests/end-to-end/test-data/Go_Sample/src/main.go b/tests/end-to-end/test-data/Go_Sample/src/main.go
new file mode 100644
index 00000000..ef25884d
--- /dev/null
+++ b/tests/end-to-end/test-data/Go_Sample/src/main.go
@@ -0,0 +1,7 @@
+package main
+
+import "fmt"
+
+func main() {
+ fmt.Println("Hello, world!")
+}
diff --git a/tests/end-to-end/test-data/JavaScript_Sample/public/index.html b/tests/end-to-end/test-data/JavaScript_Sample/public/index.html
new file mode 100644
index 00000000..080cb0eb
--- /dev/null
+++ b/tests/end-to-end/test-data/JavaScript_Sample/public/index.html
@@ -0,0 +1,11 @@
+
+
+
+
+
+ JavaScript_Sample
+
+
+
+
+
diff --git a/tests/end-to-end/test-data/JavaScript_Sample/src/index.js b/tests/end-to-end/test-data/JavaScript_Sample/src/index.js
new file mode 100644
index 00000000..a8141d3b
--- /dev/null
+++ b/tests/end-to-end/test-data/JavaScript_Sample/src/index.js
@@ -0,0 +1 @@
+console.log("Hello, world!");
diff --git a/tests/end-to-end/test-data/Kotlin_Sample/src/Main.kt b/tests/end-to-end/test-data/Kotlin_Sample/src/Main.kt
new file mode 100644
index 00000000..d113eced
--- /dev/null
+++ b/tests/end-to-end/test-data/Kotlin_Sample/src/Main.kt
@@ -0,0 +1 @@
+fun main() { println("Hello, world!") }
diff --git a/tests/end-to-end/test-data/Python_Sample/main.py b/tests/end-to-end/test-data/Python_Sample/main.py
new file mode 100644
index 00000000..f7cf60e1
--- /dev/null
+++ b/tests/end-to-end/test-data/Python_Sample/main.py
@@ -0,0 +1 @@
+print("Hello, world!")
diff --git a/tests/end-to-end/test-data/Swift_Sample/Sources/main.swift b/tests/end-to-end/test-data/Swift_Sample/Sources/main.swift
new file mode 100644
index 00000000..f7cf60e1
--- /dev/null
+++ b/tests/end-to-end/test-data/Swift_Sample/Sources/main.swift
@@ -0,0 +1 @@
+print("Hello, world!")
diff --git a/tests/end-to-end/test-data/Terraform_Sample/main.tf b/tests/end-to-end/test-data/Terraform_Sample/main.tf
new file mode 100644
index 00000000..69b152ca
--- /dev/null
+++ b/tests/end-to-end/test-data/Terraform_Sample/main.tf
@@ -0,0 +1 @@
+output "hello_world" { value = "Hello, world!" }
diff --git a/tests/end-to-end/test-data/TypeScript_Sample/src/index.ts b/tests/end-to-end/test-data/TypeScript_Sample/src/index.ts
new file mode 100644
index 00000000..a8141d3b
--- /dev/null
+++ b/tests/end-to-end/test-data/TypeScript_Sample/src/index.ts
@@ -0,0 +1 @@
+console.log("Hello, world!");
diff --git a/tests/end-to-end/test-language-detect.bats b/tests/end-to-end/test-language-detect.bats
new file mode 100644
index 00000000..afaad83d
--- /dev/null
+++ b/tests/end-to-end/test-language-detect.bats
@@ -0,0 +1,56 @@
+setup() {
+ load "${BATS_LIBS_ROOT}/bats-support/load"
+ load "${BATS_LIBS_ROOT}/bats-assert/load"
+}
+
+# Tests currently commented out as they have a dependency on test data which will be workied on in a future ticket. In order to run them currently, you would need to go into
+# each one of the language repo folder under test-data folder and git initialize them. In the future we wish to automate the creation and git initialization of each one of these
+# folders
+
+#@test "can detect C# language" {
+# run python secureli/main.py init -ryd tests/end-to-end/test-data/Csharp_Sample/
+# assert_output --partial '[seCureLI] The following language(s) support secrets detection: C#'
+# assert_output --partial '[seCureLI] - C#: 100%'
+#}
+
+#@test "can detect Go language" {
+# run python secureli/main.py init -ryd tests/end-to-end/test-data/Go_Sample/
+# assert_output --partial '[seCureLI] - Go: 100%'
+# assert_output --partial '[seCureLI] seCureLI has been installed successfully for the following language(s): Go.'
+#}
+
+#@test "can detect Javascript language" {
+# run python secureli/main.py init -ryd tests/end-to-end/test-data/JavaScript_Sample/
+# assert_output --partial '[seCureLI] - JavaScript: 100%'
+# assert_output --partial '[seCureLI] seCureLI has been installed successfully for the following language(s): JavaScript.'
+#}
+
+#@test "can detect Kotlin language" {
+# run python secureli/main.py init -ryd tests/end-to-end/test-data/Kotlin_Sample/
+# assert_output --partial '[seCureLI] - Kotlin: 100%'
+# assert_output --partial '[seCureLI] seCureLI has been installed successfully for the following language(s): Kotlin.'
+#}
+
+#@test "can detect Python language" {
+# run python secureli/main.py init -ryd tests/end-to-end/test-data/Python_Sample/
+# assert_output --partial '[seCureLI] - Python: 100%'
+# assert_output --partial '[seCureLI] seCureLI has been installed successfully for the following language(s): Python.'
+#}
+
+#@test "can detect Swift language" {
+# run python secureli/main.py init -ryd tests/end-to-end/test-data/Swift_Sample/
+# assert_output --partial '[seCureLI] seCureLI has been installed successfully for the following language(s): Swift.'
+# assert_output --partial '[seCureLI] - Swift: 100%'
+#}
+
+#@test "can detect Terraform language" {
+# run python secureli/main.py init -ryd tests/end-to-end/test-data/Terraform_Sample/
+# assert_output --partial '[seCureLI] - Terraform: 100%'
+# assert_output --partial '[seCureLI] seCureLI has been installed successfully for the following language(s): Terraform.'
+#}
+
+#@test "can detect Typescript language" {
+# run python secureli/main.py init -ryd tests/end-to-end/test-data/Typescript_Sample/
+# assert_output --partial '[seCureLI] - TypeScript: 100%'
+# assert_output --partial '[seCureLI] seCureLI has been installed successfully for the following language(s): TypeScript.'
+#}