diff --git a/bubble-server/src/main/java/bubble/dao/device/DeviceDAO.java b/bubble-server/src/main/java/bubble/dao/device/DeviceDAO.java index 119c0ad3..bca1dc71 100644 --- a/bubble-server/src/main/java/bubble/dao/device/DeviceDAO.java +++ b/bubble-server/src/main/java/bubble/dao/device/DeviceDAO.java @@ -88,16 +88,22 @@ public class DeviceDAO extends AccountOwnedEntityDAO { result = super.create(device); } else { + final Device uninitialized; Optional availableDevice = uninitializedDevices.stream().filter(Device::configsOk).findAny(); final long start = now(); while (availableDevice.isEmpty() && now() - start < DEVICE_INIT_TIMEOUT) { - // wait for configs to be ok - log.warn("create: no available uninitialized devices, waiting..."); - sleep(SECONDS.toMillis(5), "waiting for available uninitialized device"); - availableDevice = uninitializedDevices.stream().filter(Device::configsOk).findAny(); + if (configuration.testMode()) { + log.warn("create: no available uninitialized devices and in test mode, using first uninitialized device..."); + availableDevice = Optional.of(uninitializedDevices.get(0)); + } else { + // wait for configs to be ok + log.warn("create: no available uninitialized devices, waiting..."); + sleep(SECONDS.toMillis(5), "waiting for available uninitialized device"); + availableDevice = uninitializedDevices.stream().filter(Device::configsOk).findAny(); + } } if (availableDevice.isEmpty()) return die("create: timeout waiting for available uninitialized device"); - final var uninitialized = availableDevice.get(); + uninitialized = availableDevice.get(); copy(uninitialized, device); result = super.update(uninitialized); } diff --git a/bubble-server/src/test/resources/models/tests/auth/device_crud.json b/bubble-server/src/test/resources/models/tests/auth/device_crud.json index 1c9e238d..b25e17cc 100644 --- a/bubble-server/src/test/resources/models/tests/auth/device_crud.json +++ b/bubble-server/src/test/resources/models/tests/auth/device_crud.json @@ -108,8 +108,8 @@ "response": { "check": [ {"condition": "json.length === 2"}, - {"condition": "json[0].getName() === 'root-renamed-device'"}, - {"condition": "json[1].getName() === 'user-added-device'"} + {"condition": "json[0].getName() === 'user-added-device'"}, + {"condition": "json[1].getName() === 'root-renamed-device'"} ] } },