mirror of
https://github.com/projectdiscovery/nuclei.git
synced 2025-12-17 15:37:01 +00:00
* support for concurrent nuclei engines * clarify LfaAllowed race * remove unused mutex * update LfaAllowed logic to prevent races until it can be reworked for per-execution ID * Update pkg/templates/parser.go Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * debug tests * debug gh action * fixig gh template test * using atomic * using synclockmap * restore tests concurrency * lint * wiring executionId in js fs --------- Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> Co-authored-by: Mzack9999 <mzack9999@protonmail.com>
43 lines
1.4 KiB
Go
43 lines
1.4 KiB
Go
package customtemplates
|
|
|
|
import (
|
|
"bytes"
|
|
"context"
|
|
"path/filepath"
|
|
"strings"
|
|
"testing"
|
|
|
|
"github.com/projectdiscovery/gologger"
|
|
"github.com/projectdiscovery/gologger/levels"
|
|
"github.com/projectdiscovery/nuclei/v3/pkg/catalog/config"
|
|
"github.com/projectdiscovery/nuclei/v3/pkg/testutils"
|
|
"github.com/projectdiscovery/nuclei/v3/pkg/utils"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestDownloadCustomTemplatesFromGitHub(t *testing.T) {
|
|
// Capture output to check for rate limit errors
|
|
outputBuffer := &bytes.Buffer{}
|
|
gologger.DefaultLogger.SetWriter(&utils.CaptureWriter{Buffer: outputBuffer})
|
|
gologger.DefaultLogger.SetMaxLevel(levels.LevelDebug)
|
|
|
|
templatesDirectory := t.TempDir()
|
|
config.DefaultConfig.SetTemplatesDir(templatesDirectory)
|
|
|
|
options := testutils.DefaultOptions
|
|
options.GitHubTemplateRepo = []string{"projectdiscovery/nuclei-templates-test"}
|
|
|
|
ctm, err := NewCustomTemplatesManager(options)
|
|
require.Nil(t, err, "could not create custom templates manager")
|
|
|
|
ctm.Download(context.Background())
|
|
|
|
// Check if output contains rate limit error and skip test if so
|
|
output := outputBuffer.String()
|
|
if strings.Contains(output, "API rate limit exceeded") {
|
|
t.Skip("GitHub API rate limit exceeded, skipping test")
|
|
}
|
|
|
|
require.DirExists(t, filepath.Join(templatesDirectory, "github", "projectdiscovery", "nuclei-templates-test"), "cloned directory does not exists")
|
|
}
|