diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index f3ae7c75..f2f695a3 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -60,6 +60,7 @@ jobs: invoke import-fixtures invoke server -a 127.0.0.1:12345 & invoke wait + sleep 30 - name: Unit Tests run: | flutter test --coverage diff --git a/lib/api.dart b/lib/api.dart index edb2687b..63f29db6 100644 --- a/lib/api.dart +++ b/lib/api.dart @@ -497,7 +497,7 @@ class InvenTreeAPI { /* * Request the user roles (permissions) from the InvenTree server */ - Future getUserRoles() async { + Future getUserRoles() async { roles.clear(); @@ -511,7 +511,7 @@ class InvenTreeAPI { final response = await get(_URL_GET_ROLES, expectedStatusCode: 200); if (!response.successful()) { - return; + return false; } var data = response.asMap(); @@ -519,6 +519,10 @@ class InvenTreeAPI { if (data.containsKey("roles")) { // Save a local copy of the user roles roles = (response.data["roles"] ?? {}) as Map; + + return true; + } else { + return false; } } diff --git a/test/api_test.dart b/test/api_test.dart index 4f9723bd..fdc3ad6a 100644 --- a/test/api_test.dart +++ b/test/api_test.dart @@ -129,10 +129,13 @@ void main() { assert(api.supportsNotifications); assert(api.supportsPoReceive); + // Ensure we can request (and receive) user roles + assert(await api.getUserRoles()); + // Check available permissions assert(api.checkPermission("part", "change")); assert(api.checkPermission("stocklocation", "delete")); - assert(api.checkPermission("part", "weirdpermission")); + assert(!api.checkPermission("part", "weirdpermission")); assert(api.checkPermission("blah", "bloo")); });