2
0
mirror of https://github.com/inventree/inventree-app.git synced 2025-04-28 13:36:50 +00:00
inventree-app/test/preferences_test.dart
Oliver 13ebaf43e1
List refactor (#179)
* Catch paginator bug if widget is disposed before request returns

* Refactoring paginated query widget

- Add option to enable / disable search filters

* Major refactor of paginated search widget

- Learned something new.. a state can access widget.<attribute>
- THIS CHANGES EVERTHING

* Preferences: Add code for tri-state values

- Also improve unit testing for preferences code

* Allow boolean form fields to be optionally tristate

* paginator: Allow custom boolean filters

* Remove outdated filtering preferences

* Refactor filter options

- Allow specification of more detailed options

* Add custom filters for "part" list

* filter tweaks

* Remove legacy "SublocationList" widget

* Add filtering option for locationlist

* Updates for stock location widget

* Refactor category display widget

* More widget refactoring

* Update main search widget

* Fix unit tests

* Improve filtering on BOM display page
2022-07-19 23:29:01 +10:00

68 lines
2.2 KiB
Dart

/*
* Unit tests for the preferences manager
*/
import "package:test/test.dart";
import "package:inventree/preferences.dart";
void main() {
setUp(() async {
});
group("Settings Tests:", () {
test("Default Values", () async {
// Boolean values
expect(await InvenTreeSettingsManager().getBool("test", false), equals(false));
expect(await InvenTreeSettingsManager().getBool("test", true), equals(true));
// String values
expect(await InvenTreeSettingsManager().getValue("test", "x"), equals("x"));
});
test("Set value", () async {
await InvenTreeSettingsManager().setValue("abc", "xyz");
expect(await InvenTreeSettingsManager().getValue("abc", "123"), equals("xyz"));
});
test("Booleans", () async {
// Tests for boolean values
await InvenTreeSettingsManager().removeValue("chicken");
// Use default values when a setting does not exist
assert(await InvenTreeSettingsManager().getBool("chicken", true) == true);
assert(await InvenTreeSettingsManager().getBool("chicken", false) == false);
// Explicitly set to true
await InvenTreeSettingsManager().setValue("chicken", true);
assert(await InvenTreeSettingsManager().getBool("chicken", false) == true);
// Explicitly set to false
await InvenTreeSettingsManager().setValue("chicken", false);
assert(await InvenTreeSettingsManager().getBool("chicken", true) == false);
});
test("Tri State", () async {
// Tests for tristate values
await InvenTreeSettingsManager().removeValue("dog");
// Use default values when a setting does not exist
for (bool? value in [true, false, null]) {
assert(await InvenTreeSettingsManager().getTriState("dog", value) == value);
}
// Explicitly set to a value
for (bool? value in [true, false, null]) {
await InvenTreeSettingsManager().setValue("dog", value);
assert(await InvenTreeSettingsManager().getTriState("dog", true) == value);
assert(await InvenTreeSettingsManager().getTriState("dog", false) == value);
assert(await InvenTreeSettingsManager().getTriState("dog", null) == value);
}
});
});
}