Device token api endpoint (#1)
* Added /device/token handler with associated business logic and storage tests. * Use crypto rand for user code Signed-off-by: justin-slowik <justin.slowik@thermofisher.com>
This commit is contained in:
		
				
					committed by
					
						 justin-slowik
						justin-slowik
					
				
			
			
				
	
			
			
			
						parent
						
							6d343e059b
						
					
				
				
					commit
					0d1a0e4129
				
			| @@ -837,8 +837,13 @@ func testGC(t *testing.T, s storage.Storage) { | ||||
| 		t.Errorf("expected storage.ErrNotFound, got %v", err) | ||||
| 	} | ||||
|  | ||||
| 	userCode, err := storage.NewUserCode() | ||||
| 	if err != nil { | ||||
| 		t.Errorf("Unexpected Error: %v", err) | ||||
| 	} | ||||
|  | ||||
| 	d := storage.DeviceRequest{ | ||||
| 		UserCode:     storage.NewUserCode(), | ||||
| 		UserCode:     userCode, | ||||
| 		DeviceCode:   storage.NewID(), | ||||
| 		ClientID:     "client1", | ||||
| 		Scopes:       []string{"openid", "email"}, | ||||
| @@ -896,9 +901,9 @@ func testGC(t *testing.T, s storage.Storage) { | ||||
| 				t.Errorf("expected no device token garbage collection results, got %#v", result) | ||||
| 			} | ||||
| 		} | ||||
| 		//if _, err := s.GetDeviceRequest(d.UserCode); err != nil { | ||||
| 		//	t.Errorf("expected to be able to get auth request after GC: %v", err) | ||||
| 		//} | ||||
| 		if _, err := s.GetDeviceToken(dt.DeviceCode); err != nil { | ||||
| 			t.Errorf("expected to be able to get device token after GC: %v", err) | ||||
| 		} | ||||
| 	} | ||||
| 	if r, err := s.GarbageCollect(expiry.Add(time.Hour)); err != nil { | ||||
| 		t.Errorf("garbage collection failed: %v", err) | ||||
| @@ -906,12 +911,11 @@ func testGC(t *testing.T, s storage.Storage) { | ||||
| 		t.Errorf("expected to garbage collect 1 device token, got %d", r.DeviceTokens) | ||||
| 	} | ||||
|  | ||||
| 	//TODO add this code back once Getters are written for device tokens | ||||
| 	//if _, err := s.GetDeviceRequest(d.UserCode); err == nil { | ||||
| 	//	t.Errorf("expected device request to be GC'd") | ||||
| 	//} else if err != storage.ErrNotFound { | ||||
| 	//	t.Errorf("expected storage.ErrNotFound, got %v", err) | ||||
| 	//} | ||||
| 	if _, err := s.GetDeviceToken(dt.DeviceCode); err == nil { | ||||
| 		t.Errorf("expected device token to be GC'd") | ||||
| 	} else if err != storage.ErrNotFound { | ||||
| 		t.Errorf("expected storage.ErrNotFound, got %v", err) | ||||
| 	} | ||||
| } | ||||
|  | ||||
| // testTimezones tests that backends either fully support timezones or | ||||
| @@ -961,8 +965,12 @@ func testTimezones(t *testing.T, s storage.Storage) { | ||||
| } | ||||
|  | ||||
| func testDeviceRequestCRUD(t *testing.T, s storage.Storage) { | ||||
| 	userCode, err := storage.NewUserCode() | ||||
| 	if err != nil { | ||||
| 		panic(err) | ||||
| 	} | ||||
| 	d1 := storage.DeviceRequest{ | ||||
| 		UserCode:     storage.NewUserCode(), | ||||
| 		UserCode:     userCode, | ||||
| 		DeviceCode:   storage.NewID(), | ||||
| 		ClientID:     "client1", | ||||
| 		Scopes:       []string{"openid", "email"}, | ||||
| @@ -975,7 +983,7 @@ func testDeviceRequestCRUD(t *testing.T, s storage.Storage) { | ||||
| 	} | ||||
|  | ||||
| 	// Attempt to create same DeviceRequest twice. | ||||
| 	err := s.CreateDeviceRequest(d1) | ||||
| 	err = s.CreateDeviceRequest(d1) | ||||
| 	mustBeErrAlreadyExists(t, "device request", err) | ||||
|  | ||||
| 	//No manual deletes for device requests, will be handled by garbage collection routines | ||||
|   | ||||
		Reference in New Issue
	
	Block a user