Skip to content

Commit 021fb9b

Browse files
committed
remove variants
1 parent 1ebb3a5 commit 021fb9b

File tree

2 files changed

+14
-89
lines changed

2 files changed

+14
-89
lines changed

codersdk/deployment_test.go

Lines changed: 9 additions & 89 deletions
Original file line numberDiff line numberDiff line change
@@ -383,75 +383,14 @@ func TestExternalAuthYAMLConfig(t *testing.T) {
383383
require.Equal(t, inputYAML, output, "re-marshaled is the same as input")
384384
}
385385

386-
type featureVariants struct {
387-
original codersdk.Feature
388-
389-
variants []codersdk.Feature
390-
}
391-
392-
func variants(f codersdk.Feature) *featureVariants {
393-
return &featureVariants{original: f}
394-
}
395-
396-
func (f *featureVariants) Limits() *featureVariants {
397-
f.variant(func(v *codersdk.Feature) {
398-
if v.Limit == nil {
399-
v.Limit = ptr.Ref[int64](100)
400-
return
401-
}
402-
v.Limit = nil
403-
})
404-
return f
405-
}
406-
407-
func (f *featureVariants) Actual() *featureVariants {
408-
f.variant(func(v *codersdk.Feature) {
409-
if v.Actual == nil {
410-
v.Actual = ptr.Ref[int64](100)
411-
return
412-
}
413-
v.Actual = nil
414-
})
415-
return f
416-
}
417-
418-
func (f *featureVariants) Enabled() *featureVariants {
419-
f.variant(func(v *codersdk.Feature) {
420-
v.Enabled = !v.Enabled
421-
})
422-
return f
423-
}
424-
425-
func (f *featureVariants) variant(new func(f *codersdk.Feature)) {
426-
newVariants := make([]codersdk.Feature, 0, len(f.variants)*2)
427-
for _, v := range f.variants {
428-
cpy := v
429-
new(&cpy)
430-
newVariants = append(newVariants, v, cpy)
431-
}
432-
f.variants = newVariants
433-
}
434-
435-
func (f *featureVariants) Features() []codersdk.Feature {
436-
return append([]codersdk.Feature{f.original}, f.variants...)
437-
}
438-
439386
func TestFeatureComparison(t *testing.T) {
440387
t.Parallel()
441388

442-
strictEntitlement := func(v codersdk.Feature) []codersdk.Feature {
443-
// Entitlement checks should ignore limits, actuals, and enables
444-
return variants(v).Limits().Actual().Enabled().Features()
445-
}
446-
447389
testCases := []struct {
448390
Name string
449391
A codersdk.Feature
450392
B codersdk.Feature
451393
Expected int
452-
// To assert variants do not affect the end result, a function can be
453-
// used to generate additional variants of each feature to check.
454-
Variants func(v codersdk.Feature) []codersdk.Feature
455394
}{
456395
{
457396
Name: "Empty",
@@ -464,44 +403,38 @@ func TestFeatureComparison(t *testing.T) {
464403
A: codersdk.Feature{Entitlement: codersdk.EntitlementEntitled},
465404
B: codersdk.Feature{Entitlement: codersdk.EntitlementGracePeriod},
466405
Expected: 1,
467-
Variants: strictEntitlement,
468406
},
469407
{
470408
Name: "EntitledVsNotEntitled",
471409
A: codersdk.Feature{Entitlement: codersdk.EntitlementEntitled},
472410
B: codersdk.Feature{Entitlement: codersdk.EntitlementNotEntitled},
473411
Expected: 3,
474-
Variants: strictEntitlement,
475412
},
476413
{
477414
Name: "EntitledVsUnknown",
478415
A: codersdk.Feature{Entitlement: codersdk.EntitlementEntitled},
479416
B: codersdk.Feature{Entitlement: ""},
480417
Expected: 4,
481-
Variants: strictEntitlement,
482418
},
483419
// GracePeriod
484420
{
485421
Name: "GracefulVsNotEntitled",
486422
A: codersdk.Feature{Entitlement: codersdk.EntitlementGracePeriod},
487423
B: codersdk.Feature{Entitlement: codersdk.EntitlementNotEntitled},
488424
Expected: 2,
489-
Variants: strictEntitlement,
490425
},
491426
{
492427
Name: "GracefulVsUnknown",
493428
A: codersdk.Feature{Entitlement: codersdk.EntitlementGracePeriod},
494429
B: codersdk.Feature{Entitlement: ""},
495430
Expected: 3,
496-
Variants: strictEntitlement,
497431
},
498432
// NotEntitled
499433
{
500434
Name: "NotEntitledVsUnknown",
501435
A: codersdk.Feature{Entitlement: codersdk.EntitlementNotEntitled},
502436
B: codersdk.Feature{Entitlement: ""},
503437
Expected: 1,
504-
Variants: strictEntitlement,
505438
},
506439
// --
507440
{
@@ -579,29 +512,16 @@ func TestFeatureComparison(t *testing.T) {
579512
t.Run(tc.Name, func(t *testing.T) {
580513
t.Parallel()
581514

582-
if tc.Variants == nil {
583-
tc.Variants = func(v codersdk.Feature) []codersdk.Feature {
584-
return []codersdk.Feature{v}
585-
}
586-
}
515+
r := codersdk.CompareFeatures(tc.A, tc.B)
516+
logIt := !assert.Equal(t, tc.Expected, r)
587517

588-
VariantLoop:
589-
for i, a := range tc.Variants(tc.A) {
590-
for j, b := range tc.Variants(tc.B) {
591-
r := codersdk.CompareFeatures(a, b)
592-
logIt := !assert.Equalf(t, tc.Expected, r, "variant %d vs %d", i, j)
593-
594-
// Comparisons should be like addition. A - B = -1 * (B - A)
595-
r = codersdk.CompareFeatures(tc.B, tc.A)
596-
logIt = logIt || !assert.Equalf(t, tc.Expected*-1, r, "the inverse comparison should also be true, variant %d vs %d", j, i)
597-
if logIt {
598-
ad, _ := json.Marshal(a)
599-
bd, _ := json.Marshal(b)
600-
t.Logf("variant %d vs %d\ni = %s\nj = %s", i, j, ad, bd)
601-
// Do not iterate into more variants if the test fails.
602-
break VariantLoop
603-
}
604-
}
518+
// Comparisons should be like addition. A - B = -1 * (B - A)
519+
r = codersdk.CompareFeatures(tc.B, tc.A)
520+
logIt = logIt || !assert.Equalf(t, tc.Expected*-1, r, "the inverse comparison should also be true")
521+
if logIt {
522+
ad, _ := json.Marshal(tc.A)
523+
bd, _ := json.Marshal(tc.B)
524+
t.Logf("a = %s\nb = %s", ad, bd)
605525
}
606526
})
607527
}

enterprise/coderd/license/license_test.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -740,6 +740,11 @@ func TestLicenseEntitlements(t *testing.T) {
740740
userFeature := entitlements.Features[codersdk.FeatureUserLimit]
741741
assert.Equalf(t, int64(100), *userFeature.Limit, "user limit")
742742
assert.Equalf(t, int64(200), *userFeature.Actual, "user count")
743+
744+
require.Len(t, entitlements.Errors, 1, "invalid license error")
745+
require.Len(t, entitlements.Warnings, 1, "user count exceeds warning")
746+
require.Contains(t, entitlements.Errors[0], "Invalid license")
747+
require.Contains(t, entitlements.Warnings[0], "active users but is only licensed for")
743748
},
744749
},
745750
{

0 commit comments

Comments
 (0)