mirror of
				https://github.com/juanfont/headscale.git
				synced 2025-10-28 10:51:44 +01:00 
			
		
		
		
	make reauth test compat with tailscale head (#2167)
* make reauth test compat with tailscale head tailscale/tailscale@1eaad7d broke our reauth test as it makes the client retry with https/443 if it reconnects within 2 minutes. This commit fixes this by running the test as a two part, - with https, to confirm instant reconnect works - with http, and a 3 min wait, to check that it work without. The change is not a general consern as headscale in prod is ran with https. Updates #2164 Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com> * sort test for stable order Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com> --------- Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com>
This commit is contained in:
		
							parent
							
								
									e16ea2ee69
								
							
						
					
					
						commit
						9515040161
					
				| @ -1,6 +1,7 @@ | |||||||
| package db | package db | ||||||
| 
 | 
 | ||||||
| import ( | import ( | ||||||
|  | 	"sort" | ||||||
| 	"time" | 	"time" | ||||||
| 
 | 
 | ||||||
| 	"github.com/juanfont/headscale/hscontrol/types" | 	"github.com/juanfont/headscale/hscontrol/types" | ||||||
| @ -169,5 +170,7 @@ func (*Suite) TestPreAuthKeyACLTags(c *check.C) { | |||||||
| 
 | 
 | ||||||
| 	listedPaks, err := db.ListPreAuthKeys("test8") | 	listedPaks, err := db.ListPreAuthKeys("test8") | ||||||
| 	c.Assert(err, check.IsNil) | 	c.Assert(err, check.IsNil) | ||||||
| 	c.Assert(listedPaks[0].Proto().GetAclTags(), check.DeepEquals, tags) | 	gotTags := listedPaks[0].Proto().GetAclTags() | ||||||
|  | 	sort.Sort(sort.StringSlice(gotTags)) | ||||||
|  | 	c.Assert(gotTags, check.DeepEquals, tags) | ||||||
| } | } | ||||||
|  | |||||||
| @ -107,6 +107,8 @@ func TestAuthKeyLogoutAndRelogin(t *testing.T) { | |||||||
| 	IntegrationSkip(t) | 	IntegrationSkip(t) | ||||||
| 	t.Parallel() | 	t.Parallel() | ||||||
| 
 | 
 | ||||||
|  | 	for _, https := range []bool{true, false} { | ||||||
|  | 		t.Run(fmt.Sprintf("with-https-%t", https), func(t *testing.T) { | ||||||
| 			scenario, err := NewScenario(dockertestMaxWait()) | 			scenario, err := NewScenario(dockertestMaxWait()) | ||||||
| 			assertNoErr(t, err) | 			assertNoErr(t, err) | ||||||
| 			defer scenario.ShutdownAssertNoPanics(t) | 			defer scenario.ShutdownAssertNoPanics(t) | ||||||
| @ -116,7 +118,17 @@ func TestAuthKeyLogoutAndRelogin(t *testing.T) { | |||||||
| 				"user2": len(MustTestVersions), | 				"user2": len(MustTestVersions), | ||||||
| 			} | 			} | ||||||
| 
 | 
 | ||||||
| 	err = scenario.CreateHeadscaleEnv(spec, []tsic.Option{}, hsic.WithTestName("pingallbyip")) | 			opts := []hsic.Option{hsic.WithTestName("pingallbyip")} | ||||||
|  | 			if https { | ||||||
|  | 				opts = []hsic.Option{ | ||||||
|  | 					hsic.WithTestName("pingallbyip"), | ||||||
|  | 					hsic.WithEmbeddedDERPServerOnly(), | ||||||
|  | 					hsic.WithTLS(), | ||||||
|  | 					hsic.WithHostnameAsServerURL(), | ||||||
|  | 				} | ||||||
|  | 			} | ||||||
|  | 
 | ||||||
|  | 			err = scenario.CreateHeadscaleEnv(spec, []tsic.Option{}, opts...) | ||||||
| 			assertNoErrHeadscaleEnv(t, err) | 			assertNoErrHeadscaleEnv(t, err) | ||||||
| 
 | 
 | ||||||
| 			allClients, err := scenario.ListTailscaleClients() | 			allClients, err := scenario.ListTailscaleClients() | ||||||
| @ -151,6 +163,15 @@ func TestAuthKeyLogoutAndRelogin(t *testing.T) { | |||||||
| 			headscale, err := scenario.Headscale() | 			headscale, err := scenario.Headscale() | ||||||
| 			assertNoErrGetHeadscale(t, err) | 			assertNoErrGetHeadscale(t, err) | ||||||
| 
 | 
 | ||||||
|  | 			// if the server is not running with HTTPS, we have to wait a bit before
 | ||||||
|  | 			// reconnection as the newest Tailscale client has a measure that will only
 | ||||||
|  | 			// reconnect over HTTPS if they saw a noise connection previously.
 | ||||||
|  | 			// https://github.com/tailscale/tailscale/commit/1eaad7d3deb0815e8932e913ca1a862afa34db38
 | ||||||
|  | 			// https://github.com/juanfont/headscale/issues/2164
 | ||||||
|  | 			if !https { | ||||||
|  | 				time.Sleep(3 * time.Minute) | ||||||
|  | 			} | ||||||
|  | 
 | ||||||
| 			for userName := range spec { | 			for userName := range spec { | ||||||
| 				key, err := scenario.CreatePreAuthKey(userName, true, false) | 				key, err := scenario.CreatePreAuthKey(userName, true, false) | ||||||
| 				if err != nil { | 				if err != nil { | ||||||
| @ -212,6 +233,8 @@ func TestAuthKeyLogoutAndRelogin(t *testing.T) { | |||||||
| 					} | 					} | ||||||
| 				} | 				} | ||||||
| 			} | 			} | ||||||
|  | 		}) | ||||||
|  | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func TestEphemeral(t *testing.T) { | func TestEphemeral(t *testing.T) { | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user