(t *testing.T)
| 94 | } |
| 95 | |
| 96 | func TestCheckNodeSelector(t *testing.T) { |
| 97 | node := makeTestNode(labelled(map[string]string{"os-version": "ubuntu20.04"})) |
| 98 | driver := makeTestDriver(nodeSelector(node.Labels)) |
| 99 | conflictingDriver := makeTestDriver(named("conflictingDriver"), nodeSelector(node.Labels)) |
| 100 | nonconflictingDriver := makeTestDriver(named("nonconflictingDriver")) |
| 101 | |
| 102 | tests := []struct { |
| 103 | node *corev1.Node |
| 104 | existingDriver *nvidiav1alpha1.NVIDIADriver |
| 105 | requestedDriver *nvidiav1alpha1.NVIDIADriver |
| 106 | shouldError bool |
| 107 | }{ |
| 108 | {node: node, existingDriver: driver, requestedDriver: conflictingDriver, shouldError: true}, |
| 109 | {node: node, existingDriver: driver, requestedDriver: nonconflictingDriver, shouldError: false}, |
| 110 | } |
| 111 | |
| 112 | for _, tc := range tests { |
| 113 | s := scheme.Scheme |
| 114 | err := nvidiav1alpha1.AddToScheme(s) |
| 115 | require.NoError(t, err) |
| 116 | c := fake. |
| 117 | NewClientBuilder(). |
| 118 | WithScheme(s). |
| 119 | WithObjects(tc.node, tc.existingDriver, tc.requestedDriver). |
| 120 | Build() |
| 121 | nsv := NewNodeSelectorValidator(c) |
| 122 | |
| 123 | err = nsv.Validate(context.Background(), tc.requestedDriver) |
| 124 | if tc.shouldError { |
| 125 | assert.Error(t, err) |
| 126 | } else { |
| 127 | assert.NoError(t, err) |
| 128 | } |
| 129 | } |
| 130 | } |
nothing calls this directly
no test coverage detected