github.com/netdata/go.d.plugin@v0.58.1/agent/discovery/file/read_test.go (about)

     1  // SPDX-License-Identifier: GPL-3.0-or-later
     2  
     3  package file
     4  
     5  import (
     6  	"testing"
     7  
     8  	"github.com/netdata/go.d.plugin/agent/confgroup"
     9  	"github.com/netdata/go.d.plugin/agent/module"
    10  
    11  	"github.com/stretchr/testify/assert"
    12  )
    13  
    14  func TestReader_String(t *testing.T) {
    15  	assert.NotEmpty(t, NewReader(confgroup.Registry{}, nil))
    16  }
    17  
    18  func TestNewReader(t *testing.T) {
    19  	tests := map[string]struct {
    20  		reg   confgroup.Registry
    21  		paths []string
    22  	}{
    23  		"empty inputs": {
    24  			reg:   confgroup.Registry{},
    25  			paths: []string{},
    26  		},
    27  	}
    28  
    29  	for name, test := range tests {
    30  		t.Run(name, func(t *testing.T) { assert.NotNil(t, NewReader(test.reg, test.paths)) })
    31  	}
    32  }
    33  
    34  func TestReader_Run(t *testing.T) {
    35  	tmp := newTmpDir(t, "reader-run-*")
    36  	defer tmp.cleanup()
    37  
    38  	module1 := tmp.join("module1.conf")
    39  	module2 := tmp.join("module2.conf")
    40  	module3 := tmp.join("module3.conf")
    41  
    42  	tmp.writeYAML(module1, staticConfig{
    43  		Jobs: []confgroup.Config{{"name": "name"}},
    44  	})
    45  	tmp.writeYAML(module2, staticConfig{
    46  		Jobs: []confgroup.Config{{"name": "name"}},
    47  	})
    48  	tmp.writeString(module3, "# a comment")
    49  
    50  	reg := confgroup.Registry{
    51  		"module1": {},
    52  		"module2": {},
    53  		"module3": {},
    54  	}
    55  	discovery := prepareDiscovery(t, Config{
    56  		Registry: reg,
    57  		Read:     []string{module1, module2, module3},
    58  	})
    59  	expected := []*confgroup.Group{
    60  		{
    61  			Source: module1,
    62  			Configs: []confgroup.Config{
    63  				{
    64  					"name":                "name",
    65  					"module":              "module1",
    66  					"update_every":        module.UpdateEvery,
    67  					"autodetection_retry": module.AutoDetectionRetry,
    68  					"priority":            module.Priority,
    69  					"__source__":          module1,
    70  					"__provider__":        "file reader",
    71  				},
    72  			},
    73  		},
    74  		{
    75  			Source: module2,
    76  			Configs: []confgroup.Config{
    77  				{
    78  					"name":                "name",
    79  					"module":              "module2",
    80  					"update_every":        module.UpdateEvery,
    81  					"autodetection_retry": module.AutoDetectionRetry,
    82  					"priority":            module.Priority,
    83  					"__source__":          module2,
    84  					"__provider__":        "file reader",
    85  				},
    86  			},
    87  		},
    88  		{
    89  			Source: module3,
    90  		},
    91  	}
    92  
    93  	sim := discoverySim{
    94  		discovery:      discovery,
    95  		expectedGroups: expected,
    96  	}
    97  
    98  	sim.run(t)
    99  }