@@ -116,35 +116,81 @@ func TestCopyAndUpdateConfigModules_Nrdot(t *testing.T) {
116116 {GoMod : "github.com/newrelic/nrdot-collector-components/processor/adaptivetelemetryprocessor v0.142.2" },
117117 }
118118 updates := map [string ]VersionUpdate {
119- "github.com/newrelic/nrdot-collector-components" : {BetaVersion : "v0.147.0" },
119+ "go.opentelemetry.io/collector" : {BetaVersion : "v0.147.0" , StableVersion : "v1.53.0" },
120+ "github.com/open-telemetry/opentelemetry-collector-contrib" : {BetaVersion : "v0.147.0" },
121+ "github.com/newrelic/nrdot-collector-components" : {BetaVersion : "v0.147.0" },
120122 }
121123 result , err := CopyAndUpdateConfigModules (cfg , updates )
122124 assert .NoError (t , err )
123125 assert .Equal (t , "github.com/newrelic/nrdot-collector-components/processor/adaptivetelemetryprocessor v0.147.0" , result .Processors [0 ].GoMod )
124126}
125127
128+ func TestCopyAndUpdateConfigModules_NrdotWithoutUpstream (t * testing.T ) {
129+ cfg := newTestCfg ()
130+ cfg .Processors = []Module {
131+ {GoMod : "github.com/newrelic/nrdot-collector-components/processor/adaptivetelemetryprocessor v0.142.2" },
132+ }
133+ // Expect failure if only nrdot is advanced without upstream components
134+ updates := map [string ]VersionUpdate {
135+ "github.com/newrelic/nrdot-collector-components" : {BetaVersion : "v0.147.0" },
136+ }
137+ _ , err := CopyAndUpdateConfigModules (cfg , updates )
138+ assert .Error (t , err )
139+ }
140+
141+ func TestCopyAndUpdateConfigModules_UpstreamWithoutNrdot (t * testing.T ) {
142+ cfg := newTestCfg ()
143+ cfg .Processors = []Module {
144+ {GoMod : "github.com/newrelic/nrdot-collector-components/processor/adaptivetelemetryprocessor v0.142.2" },
145+ }
146+ // Expect failure if upstream components are advanced without nrdot
147+ updates := map [string ]VersionUpdate {
148+ "go.opentelemetry.io/collector" : {BetaVersion : "v0.147.0" , StableVersion : "v1.53.0" },
149+ "github.com/open-telemetry/opentelemetry-collector-contrib" : {BetaVersion : "v0.147.0" },
150+ }
151+ _ , err := CopyAndUpdateConfigModules (cfg , updates )
152+ assert .Error (t , err )
153+ }
154+
126155func TestCopyAndUpdateConfigModules_NrForkContrib (t * testing.T ) {
127156 cfg := newTestCfg ()
128157 cfg .Receivers = []Module {
129- {GoMod : "github.com/newrelic-forks/opentelemetry-collector-contrib/receiver/nrsqlserverreceiver v0.154 .4" },
158+ {GoMod : "github.com/newrelic-forks/opentelemetry-collector-contrib/receiver/nrsqlserverreceiver v0.142 .4" },
130159 }
131160 updates := map [string ]VersionUpdate {
161+ "go.opentelemetry.io/collector" : {BetaVersion : "v0.155.0" , StableVersion : "v1.61.0" },
162+ "github.com/open-telemetry/opentelemetry-collector-contrib" : {BetaVersion : "v0.155.0" },
132163 "github.com/newrelic-forks/opentelemetry-collector-contrib" : {BetaVersion : "v0.155.0" },
133164 }
134165 result , err := CopyAndUpdateConfigModules (cfg , updates )
135166 assert .NoError (t , err )
136167 assert .Equal (t , "github.com/newrelic-forks/opentelemetry-collector-contrib/receiver/nrsqlserverreceiver v0.155.0" , result .Receivers [0 ].GoMod )
137168}
138169
170+ func TestCopyAndUpdateConfigModules_NrForkContribWithoutUpstream (t * testing.T ) {
171+ cfg := newTestCfg ()
172+ cfg .Receivers = []Module {
173+ {GoMod : "github.com/newrelic-forks/opentelemetry-collector-contrib/receiver/nrsqlserverreceiver v0.154.4" },
174+ }
175+ // Expect failure if only fork components are advanced without upstream
176+ updates := map [string ]VersionUpdate {
177+ "github.com/newrelic-forks/opentelemetry-collector-contrib" : {BetaVersion : "v0.155.0" },
178+ }
179+ _ , err := CopyAndUpdateConfigModules (cfg , updates )
180+ assert .Error (t , err )
181+ }
182+
139183func TestCopyAndUpdateConfigModules_NrdotAndNrFork (t * testing.T ) {
140184 cfg := newTestCfg ()
141185 cfg .Processors = []Module {
142- {GoMod : "github.com/newrelic/nrdot-collector-components/processor/adaptivetelemetryprocessor v0.154 .0" },
186+ {GoMod : "github.com/newrelic/nrdot-collector-components/processor/adaptivetelemetryprocessor v0.142 .0" },
143187 }
144188 cfg .Receivers = []Module {
145- {GoMod : "github.com/newrelic-forks/opentelemetry-collector-contrib/receiver/nrsqlserverreceiver v0.154.4 " },
189+ {GoMod : "github.com/newrelic-forks/opentelemetry-collector-contrib/receiver/nrsqlserverreceiver v0.142.2 " },
146190 }
147191 updates := map [string ]VersionUpdate {
192+ "go.opentelemetry.io/collector" : {BetaVersion : "v0.155.0" , StableVersion : "v1.53.0" },
193+ "github.com/open-telemetry/opentelemetry-collector-contrib" : {BetaVersion : "v0.155.0" },
148194 "github.com/newrelic/nrdot-collector-components" : {BetaVersion : "v0.155.0" },
149195 "github.com/newrelic-forks/opentelemetry-collector-contrib" : {BetaVersion : "v0.155.0" },
150196 }
@@ -154,6 +200,25 @@ func TestCopyAndUpdateConfigModules_NrdotAndNrFork(t *testing.T) {
154200 assert .Equal (t , "github.com/newrelic-forks/opentelemetry-collector-contrib/receiver/nrsqlserverreceiver v0.155.0" , result .Receivers [0 ].GoMod )
155201}
156202
203+ func TestCopyAndUpdateConfigModules_NrdotAndNrForkMisaligned (t * testing.T ) {
204+ cfg := newTestCfg ()
205+ cfg .Processors = []Module {
206+ {GoMod : "github.com/newrelic/nrdot-collector-components/processor/adaptivetelemetryprocessor v0.142.0" },
207+ }
208+ cfg .Receivers = []Module {
209+ {GoMod : "github.com/newrelic-forks/opentelemetry-collector-contrib/receiver/nrsqlserverreceiver v0.142.2" },
210+ }
211+ // Updating one component to incorrect minor should
212+ updates := map [string ]VersionUpdate {
213+ "go.opentelemetry.io/collector" : {BetaVersion : "v0.155.0" , StableVersion : "v1.53.0" },
214+ "github.com/open-telemetry/opentelemetry-collector-contrib" : {BetaVersion : "v0.155.0" },
215+ "github.com/newrelic/nrdot-collector-components" : {BetaVersion : "v0.155.0" },
216+ "github.com/newrelic-forks/opentelemetry-collector-contrib" : {BetaVersion : "v0.156.4" },
217+ }
218+ _ , err := CopyAndUpdateConfigModules (cfg , updates )
219+ assert .Error (t , err )
220+ }
221+
157222func TestCopyAndUpdateConfigModules_NoMatchUnchanged (t * testing.T ) {
158223 cfg := newTestCfg ()
159224 cfg .Receivers = []Module {
0 commit comments