in go/metadata/metadata.go [68:132]
func Merge(m1, m2 *Metadata) (*Metadata, error) {
capabilities := capabilities.Merge(m1.Capabilities, m2.Capabilities)
environment := m1.Environment
if m2.Environment != "" {
environment = m2.Environment
}
label := m1.Label
if m2.Label != "" {
label = m2.Label
}
browserLabel := m1.BrowserLabel
if m2.BrowserLabel != "" {
browserLabel = m2.BrowserLabel
}
testLabel := m1.TestLabel
if m2.TestLabel != "" {
testLabel = m2.TestLabel
}
configLabel := m1.ConfigLabel
if m2.ConfigLabel != "" {
configLabel = m2.ConfigLabel
}
debuggerPort := m1.DebuggerPort
if m2.DebuggerPort != 0 {
debuggerPort = m2.DebuggerPort
}
var webTestFiles []*WebTestFiles
webTestFiles = append(webTestFiles, m1.WebTestFiles...)
webTestFiles = append(webTestFiles, m2.WebTestFiles...)
webTestFiles, err := normalizeWebTestFiles(webTestFiles)
if err != nil {
return nil, err
}
extension := m1.Extension
if extension == nil {
extension = m2.Extension
} else if m2.Extension != nil {
e, err := extension.Merge(m2.Extension)
if err != nil {
return nil, err
}
extension = e
}
return &Metadata{
Capabilities: capabilities,
Environment: environment,
Label: label,
BrowserLabel: browserLabel,
TestLabel: testLabel,
ConfigLabel: configLabel,
DebuggerPort: debuggerPort,
WebTestFiles: webTestFiles,
Extension: extension,
}, nil
}