forked from toolshed/abra
		
	
		
			
				
	
	
		
			65 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			65 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package dns
 | |
| 
 | |
| import (
 | |
| 	"fmt"
 | |
| 	"testing"
 | |
| 
 | |
| 	"gotest.tools/v3/assert"
 | |
| )
 | |
| 
 | |
| func TestEnsureDomainsResolveSameIPv4(t *testing.T) {
 | |
| 	tests := []struct {
 | |
| 		domainName     string
 | |
| 		serverName     string
 | |
| 		shouldValidate bool
 | |
| 	}{
 | |
| 		// NOTE(d1): DNS records get checked, so use something that is maintained
 | |
| 		// within the federation. if you're here because of a failing test, try
 | |
| 		// `dig +short <domain>` to ensure stuff matches first! If flakyness
 | |
| 		// becomes an issue we can look into mocking
 | |
| 		{"docs.coopcloud.tech", "swarm-0.coopcloud.tech", true},
 | |
| 		{"docs.coopcloud.tech", "coopcloud.tech", true},
 | |
| 
 | |
| 		// NOTE(d1): special case handling for "--local"
 | |
| 		{"", "default", true},
 | |
| 		{"", "local", true},
 | |
| 
 | |
| 		{"", "", false},
 | |
| 		{"123", "", false},
 | |
| 	}
 | |
| 
 | |
| 	for _, test := range tests {
 | |
| 		_, err := EnsureDomainsResolveSameIPv4(test.domainName, test.serverName)
 | |
| 		if err != nil && test.shouldValidate {
 | |
| 			t.Fatal(err)
 | |
| 		}
 | |
| 
 | |
| 		if err == nil && !test.shouldValidate {
 | |
| 			t.Fatal(fmt.Errorf("should have failed but did not: %v", test))
 | |
| 		}
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func TestEnsureIpv4(t *testing.T) {
 | |
| 	// NOTE(d1): DNS records get checked, so use something that is maintained
 | |
| 	// within the federation. if you're here because of a failing test, try `dig
 | |
| 	// +short <domain>` to ensure stuff matches first! If flakyness becomes an
 | |
| 	// issue we can look into mocking
 | |
| 	domainName := "collabora.ostrom.collective.tools"
 | |
| 	serverName := "ostrom.collective.tools"
 | |
| 
 | |
| 	for i := 0; i < 15; i++ {
 | |
| 		domainIpv4, err := EnsureIPv4(domainName)
 | |
| 		if err != nil {
 | |
| 			t.Fatal(err)
 | |
| 		}
 | |
| 
 | |
| 		serverIpv4, err := EnsureIPv4(serverName)
 | |
| 		if err != nil {
 | |
| 			t.Fatal(err)
 | |
| 		}
 | |
| 
 | |
| 		assert.Equal(t, domainIpv4, serverIpv4)
 | |
| 	}
 | |
| }
 |