From aa950c7acb128f94e018c59c17524e77be33e9ab Mon Sep 17 00:00:00 2001 From: Jordan Ribbink Date: Thu, 30 Nov 2023 11:40:52 -0800 Subject: [PATCH 1/5] [Test] Add runner.GetTests function --- test/test_framework_test.go | 27 +++++++++++++++++++++++++++ test/test_runner.go | 19 +++++++++++++++++++ 2 files changed, 46 insertions(+) diff --git a/test/test_framework_test.go b/test/test_framework_test.go index d0115d24..04faac53 100644 --- a/test/test_framework_test.go +++ b/test/test_framework_test.go @@ -5498,3 +5498,30 @@ func TestEnvironmentForUnitTests(t *testing.T) { assert.NoError(t, result.Error) } } + + +func TestGetTests(t *testing.T) { + t.Parallel() + + const code = ` + import Test + + pub fun test1() { + log("test1") + } + + pub fun test2() { + log("test2") + } + + pub fun test3() { + log("test3") + } + ` + + runner := NewTestRunner() + tests, err := runner.GetTests(code) + require.NoError(t, err) + + assert.ElementsMatch(t, []string{"test1", "test2", "test3"}, tests) +} \ No newline at end of file diff --git a/test/test_runner.go b/test/test_runner.go index 23e51933..10635fa6 100644 --- a/test/test_runner.go +++ b/test/test_runner.go @@ -284,6 +284,25 @@ func (r *TestRunner) RunTests(script string) (results Results, err error) { return results, err } +func (r *TestRunner) GetTests(script string) ([]string, error) { + program, _, err := r.parseCheckAndInterpret(script) + if err != nil { + return nil, err + } + + tests := make([]string, 0) + + for _, funcDecl := range program.Program.FunctionDeclarations() { + funcName := funcDecl.Identifier.Identifier + + if strings.HasPrefix(funcName, testFunctionPrefix) { + tests = append(tests, funcName) + } + } + + return tests, nil +} + func (r *TestRunner) replaceImports(code string) string { return r.backend.replaceImports(code) } From 8f7cb7cace45bfa22a6a5c3e6d4d95f9a6eaed3d Mon Sep 17 00:00:00 2001 From: Jordan Ribbink Date: Thu, 30 Nov 2023 11:43:44 -0800 Subject: [PATCH 2/5] fix code formatting --- test/test_framework_test.go | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/test/test_framework_test.go b/test/test_framework_test.go index 04faac53..56025a8e 100644 --- a/test/test_framework_test.go +++ b/test/test_framework_test.go @@ -5504,19 +5504,19 @@ func TestGetTests(t *testing.T) { t.Parallel() const code = ` - import Test + import Test - pub fun test1() { - log("test1") - } + pub fun test1() { + log("test1") + } - pub fun test2() { - log("test2") - } + pub fun test2() { + log("test2") + } - pub fun test3() { - log("test3") - } + pub fun test3() { + log("test3") + } ` runner := NewTestRunner() From 744257d39efb9d82f2ad996d8ad0ccfc47c7a848 Mon Sep 17 00:00:00 2001 From: Jordan Ribbink Date: Thu, 30 Nov 2023 13:11:05 -0800 Subject: [PATCH 3/5] Update test/test_framework_test.go Co-authored-by: Supun Setunga --- test/test_framework_test.go | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/test/test_framework_test.go b/test/test_framework_test.go index 56025a8e..3fa8291e 100644 --- a/test/test_framework_test.go +++ b/test/test_framework_test.go @@ -5504,19 +5504,19 @@ func TestGetTests(t *testing.T) { t.Parallel() const code = ` - import Test + import Test - pub fun test1() { - log("test1") - } + pub fun test1() { + log("test1") + } - pub fun test2() { - log("test2") - } + pub fun test2() { + log("test2") + } - pub fun test3() { - log("test3") - } + pub fun test3() { + log("test3") + } ` runner := NewTestRunner() From bbb18756faa0d81ecc4772dd502ea72aac04469f Mon Sep 17 00:00:00 2001 From: Jordan Ribbink Date: Thu, 30 Nov 2023 13:11:18 -0800 Subject: [PATCH 4/5] Update test/test_framework_test.go Co-authored-by: Supun Setunga --- test/test_framework_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/test_framework_test.go b/test/test_framework_test.go index 3fa8291e..f04728a0 100644 --- a/test/test_framework_test.go +++ b/test/test_framework_test.go @@ -5524,4 +5524,4 @@ func TestGetTests(t *testing.T) { require.NoError(t, err) assert.ElementsMatch(t, []string{"test1", "test2", "test3"}, tests) -} \ No newline at end of file +} From 48aa20fd00b204a2dc04de281d0e56f009f7fe27 Mon Sep 17 00:00:00 2001 From: Jordan Ribbink Date: Thu, 30 Nov 2023 13:11:27 -0800 Subject: [PATCH 5/5] Update test/test_framework_test.go Co-authored-by: Supun Setunga --- test/test_framework_test.go | 2 -- 1 file changed, 2 deletions(-) diff --git a/test/test_framework_test.go b/test/test_framework_test.go index f04728a0..739cd89d 100644 --- a/test/test_framework_test.go +++ b/test/test_framework_test.go @@ -5498,8 +5498,6 @@ func TestEnvironmentForUnitTests(t *testing.T) { assert.NoError(t, result.Error) } } - - func TestGetTests(t *testing.T) { t.Parallel()