...

Source file src/sigs.k8s.io/kustomize/kyaml/yaml/merge2/scalar_test.go

Documentation: sigs.k8s.io/kustomize/kyaml/yaml/merge2

     1  // Copyright 2019 The Kubernetes Authors.
     2  // SPDX-License-Identifier: Apache-2.0
     3  
     4  package merge2_test
     5  
     6  import (
     7  	"sigs.k8s.io/kustomize/kyaml/yaml"
     8  )
     9  
    10  var scalarTestCases = []testCase{
    11  	{description: `replace scalar -- different value in dest`,
    12  		source: `
    13  kind: Deployment
    14  field: value1
    15  `,
    16  		dest: `
    17  kind: Deployment
    18  field: value0
    19  `,
    20  		expected: `
    21  kind: Deployment
    22  field: value1
    23  `,
    24  		mergeOptions: yaml.MergeOptions{
    25  			ListIncreaseDirection: yaml.MergeOptionsListAppend,
    26  		},
    27  	},
    28  
    29  	{description: `replace scalar -- missing from dest`,
    30  		source: `
    31  kind: Deployment
    32  field: value1
    33  `,
    34  		dest: `
    35  kind: Deployment
    36  `,
    37  		expected: `
    38  kind: Deployment
    39  field: value1
    40  `,
    41  		mergeOptions: yaml.MergeOptions{
    42  			ListIncreaseDirection: yaml.MergeOptionsListAppend,
    43  		},
    44  	},
    45  
    46  	//
    47  	// Test Case
    48  	//
    49  	{description: `keep scalar -- same value in src and dest`,
    50  		source: `
    51  kind: Deployment
    52  field: value1
    53  `,
    54  		dest: `
    55  kind: Deployment
    56  field: value1
    57  `,
    58  		expected: `
    59  kind: Deployment
    60  field: value1
    61  `,
    62  		mergeOptions: yaml.MergeOptions{
    63  			ListIncreaseDirection: yaml.MergeOptionsListAppend,
    64  		},
    65  	},
    66  
    67  	//
    68  	// Test Case
    69  	//
    70  	{description: `keep scalar -- unspecified in src`,
    71  		source: `
    72  kind: Deployment
    73  `,
    74  		dest: `
    75  kind: Deployment
    76  field: value1
    77  `,
    78  		expected: `
    79  kind: Deployment
    80  field: value1
    81  `,
    82  		mergeOptions: yaml.MergeOptions{
    83  			ListIncreaseDirection: yaml.MergeOptionsListAppend,
    84  		},
    85  	},
    86  
    87  	//
    88  	// Test Case
    89  	//
    90  	{description: `remove scalar -- null in src`,
    91  		source: `
    92  kind: Deployment
    93  field: null
    94  `,
    95  		dest: `
    96  kind: Deployment
    97  field: value1
    98  `,
    99  		expected: `
   100  kind: Deployment
   101  `,
   102  		mergeOptions: yaml.MergeOptions{
   103  			ListIncreaseDirection: yaml.MergeOptionsListAppend,
   104  		},
   105  	},
   106  
   107  	//
   108  	// Test Case
   109  	//
   110  	{description: `remove scalar -- empty in src`,
   111  		source: `
   112  kind: Deployment
   113  field:
   114  `,
   115  		dest: `
   116  kind: Deployment
   117  field: value1
   118  `,
   119  		expected: `
   120  kind: Deployment
   121  `,
   122  		mergeOptions: yaml.MergeOptions{
   123  			ListIncreaseDirection: yaml.MergeOptionsListAppend,
   124  		},
   125  	},
   126  
   127  	//
   128  	// Test Case
   129  	//
   130  	{description: `remove scalar -- null in src, missing in dest`,
   131  		source: `
   132  kind: Deployment
   133  field: null
   134  `,
   135  		dest: `
   136  kind: Deployment
   137  `,
   138  		expected: `
   139  kind: Deployment
   140  `,
   141  		mergeOptions: yaml.MergeOptions{
   142  			ListIncreaseDirection: yaml.MergeOptionsListAppend,
   143  		},
   144  	},
   145  
   146  	//
   147  	// Test Case
   148  	//
   149  	{description: `remove scalar -- null in src, empty in dest`,
   150  		source: `
   151  kind: Deployment
   152  field: null
   153  `,
   154  		dest: `
   155  kind: Deployment
   156  field:
   157  `,
   158  		expected: `
   159  kind: Deployment
   160  `,
   161  		mergeOptions: yaml.MergeOptions{
   162  			ListIncreaseDirection: yaml.MergeOptionsListAppend,
   163  		},
   164  	},
   165  
   166  	//
   167  	// Test Case
   168  	//
   169  	{description: `remove scalar -- null in src, null in dest`,
   170  		source: `
   171  kind: Deployment
   172  field: null
   173  `,
   174  		dest: `
   175  kind: Deployment
   176  field: null
   177  `,
   178  		expected: `
   179  kind: Deployment
   180  `,
   181  		mergeOptions: yaml.MergeOptions{
   182  			ListIncreaseDirection: yaml.MergeOptionsListAppend,
   183  		},
   184  	},
   185  
   186  	//
   187  	// Test Case
   188  	//
   189  	{description: `keep scalar -- missing in src, null in dest`,
   190  		source: `
   191  kind: Deployment
   192  `,
   193  		dest: `
   194  kind: Deployment
   195  field: null
   196  `,
   197  		expected: `
   198  kind: Deployment
   199  field: null
   200  `,
   201  		mergeOptions: yaml.MergeOptions{
   202  			ListIncreaseDirection: yaml.MergeOptionsListAppend,
   203  		},
   204  	},
   205  	{description: `keep scalar -- missing in src, null in dest, preserves null marker`,
   206  		source: `
   207  kind: Deployment
   208  `,
   209  		dest: `
   210  kind: Deployment
   211  field: ~
   212  `,
   213  		expected: `
   214  kind: Deployment
   215  field: ~
   216  `,
   217  		mergeOptions: yaml.MergeOptions{
   218  			ListIncreaseDirection: yaml.MergeOptionsListAppend,
   219  		},
   220  	},
   221  
   222  	//
   223  	// Test Case
   224  	//
   225  	{description: `merge an empty value`,
   226  		source: `
   227  kind: Deployment
   228  field: {}
   229  `,
   230  		dest: `
   231  kind: Deployment
   232  `,
   233  		expected: `
   234  kind: Deployment
   235  field: {}
   236  `,
   237  		mergeOptions: yaml.MergeOptions{
   238  			ListIncreaseDirection: yaml.MergeOptionsListAppend,
   239  		},
   240  	},
   241  }
   242  

View as plain text