12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- package stream
- import (
- "testing"
- )
- func TestIsStreamConfig(t *testing.T) {
- tests := []struct {
- path string
- expected bool
- }{
- {"streams-available/test.conf", true},
- {"streams-enabled/test.conf", true},
- {"/etc/nginx/streams-available/test.conf", true},
- {"/etc/nginx/streams-enabled/test.conf", true},
- {"/var/lib/nginx/streams-available/my-stream.conf", true},
- {"/home/user/nginx/streams-enabled/tcp-proxy.conf", true},
- {"sites-available/test.conf", false},
- {"sites-enabled/test.conf", false},
- {"/etc/nginx/conf.d/test.conf", false},
- {"test.conf", false},
- }
- for _, test := range tests {
- result := isStreamConfig(test.path)
- if result != test.expected {
- t.Errorf("isStreamConfig(%q) = %v, expected %v", test.path, result, test.expected)
- }
- }
- }
- func TestScanForStream(t *testing.T) {
- // Clear the IndexedStreams map
- IndexedStreams = make(map[string]*StreamIndex)
- config := `upstream my-tcp {
- server 127.0.0.1:9000;
- }
- server {
- listen 1234-1236;
- resolver 8.8.8.8 valid=1s;
- proxy_pass example.com:$server_port;
- }`
- // Test with a valid stream config path
- err := scanForStream("streams-available/test.conf", []byte(config))
- if err != nil {
- t.Errorf("scanForStream failed: %v", err)
- }
- // Check if the stream was indexed
- if len(IndexedStreams) != 1 {
- t.Errorf("Expected 1 indexed stream, got %d", len(IndexedStreams))
- }
- stream := IndexedStreams["test.conf"]
- if stream == nil {
- t.Fatal("Stream not found in index")
- }
- if len(stream.ProxyTargets) != 2 {
- t.Errorf("Expected 2 proxy targets, got %d", len(stream.ProxyTargets))
- for i, target := range stream.ProxyTargets {
- t.Logf("Target %d: %+v", i, target)
- }
- }
- // Test with a non-stream config path
- IndexedStreams = make(map[string]*StreamIndex)
- err = scanForStream("sites-available/test.conf", []byte(config))
- if err != nil {
- t.Errorf("scanForStream failed: %v", err)
- }
- // Should not be indexed
- if len(IndexedStreams) != 0 {
- t.Errorf("Expected 0 indexed streams for non-stream config, got %d", len(IndexedStreams))
- }
- }
|