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.' +#}