2
0
mirror of https://github.com/inventree/inventree-app.git synced 2025-06-16 04:05:28 +00:00

Merge pull request #135 from inventree/unit-testing

Unit testing

(cherry picked from commit d55f594342)
This commit is contained in:
Oliver
2022-05-22 10:11:36 +10:00
committed by Oliver Walters
parent 10b435f4fa
commit cfc9f09b80
35 changed files with 893 additions and 317 deletions

View File

@ -1,12 +1,12 @@
import "package:inventree/app_settings.dart";
import "package:inventree/widget/snacks.dart";
import "package:audioplayers/audioplayers.dart";
import "package:flutter/material.dart";
import "package:font_awesome_flutter/font_awesome_flutter.dart";
import "package:inventree/l10.dart";
import "package:inventree/helpers.dart";
import "package:one_context/one_context.dart";
import "package:inventree/l10.dart";
import "package:inventree/preferences.dart";
import "package:inventree/widget/snacks.dart";
Future<void> confirmationDialog(String title, String text, {IconData icon = FontAwesomeIcons.questionCircle, String? acceptText, String? rejectText, Function? onAccept, Function? onReject}) async {
String _accept = acceptText ?? L10().ok;
@ -108,8 +108,7 @@ Future<void> showServerError(String title, String description) async {
final bool tones = await InvenTreeSettingsManager().getValue(INV_SOUNDS_SERVER, true) as bool;
if (tones) {
final player = AudioCache();
player.play("sounds/server_error.mp3");
playAudioFile("sounds/server_error.mp3");
}
showSnackIcon(

View File

@ -34,7 +34,7 @@ class InvenTreeDrawer extends StatelessWidget {
void _search() {
if (!InvenTreeAPI().checkConnection(context)) return;
if (!InvenTreeAPI().checkConnection()) return;
_closeDrawer();
@ -51,7 +51,7 @@ class InvenTreeDrawer extends StatelessWidget {
* Upon successful scan, data are passed off to be decoded.
*/
Future <void> _scan() async {
if (!InvenTreeAPI().checkConnection(context)) return;
if (!InvenTreeAPI().checkConnection()) return;
_closeDrawer();
scanQrCode(context);

View File

@ -6,7 +6,7 @@ import "package:font_awesome_flutter/font_awesome_flutter.dart";
import "package:inventree/api.dart";
import "package:inventree/app_colors.dart";
import "package:inventree/app_settings.dart";
import "package:inventree/preferences.dart";
import "package:inventree/barcode.dart";
import "package:inventree/l10.dart";
import "package:inventree/settings/login.dart";
@ -71,13 +71,13 @@ class _InvenTreeHomePageState extends State<InvenTreeHomePage> {
UserProfile? _profile;
void _scan(BuildContext context) {
if (!InvenTreeAPI().checkConnection(context)) return;
if (!InvenTreeAPI().checkConnection()) return;
scanQrCode(context);
}
void _showParts(BuildContext context) {
if (!InvenTreeAPI().checkConnection(context)) return;
if (!InvenTreeAPI().checkConnection()) return;
Navigator.push(context, MaterialPageRoute(builder: (context) => CategoryDisplayWidget(null)));
}
@ -87,7 +87,7 @@ class _InvenTreeHomePageState extends State<InvenTreeHomePage> {
}
void _showStarredParts(BuildContext context) {
if (!InvenTreeAPI().checkConnection(context)) return;
if (!InvenTreeAPI().checkConnection()) return;
Navigator.push(
context,
@ -100,13 +100,13 @@ class _InvenTreeHomePageState extends State<InvenTreeHomePage> {
}
void _showStock(BuildContext context) {
if (!InvenTreeAPI().checkConnection(context)) return;
if (!InvenTreeAPI().checkConnection()) return;
Navigator.push(context, MaterialPageRoute(builder: (context) => LocationDisplayWidget(null)));
}
void _showPurchaseOrders(BuildContext context) {
if (!InvenTreeAPI().checkConnection(context)) return;
if (!InvenTreeAPI().checkConnection()) return;
Navigator.push(
context,
@ -118,19 +118,19 @@ class _InvenTreeHomePageState extends State<InvenTreeHomePage> {
/*
void _showSuppliers(BuildContext context) {
if (!InvenTreeAPI().checkConnection(context)) return;
if (!InvenTreeAPI().checkConnection()) return;
Navigator.push(context, MaterialPageRoute(builder: (context) => CompanyListWidget(L10().suppliers, {"is_supplier": "true"})));
}
void _showManufacturers(BuildContext context) {
if (!InvenTreeAPI().checkConnection(context)) return;
if (!InvenTreeAPI().checkConnection()) return;
Navigator.push(context, MaterialPageRoute(builder: (context) => CompanyListWidget(L10().manufacturers, {"is_manufacturer": "true"})));
}
void _showCustomers(BuildContext context) {
if (!InvenTreeAPI().checkConnection(context)) return;
if (!InvenTreeAPI().checkConnection()) return;
Navigator.push(context, MaterialPageRoute(builder: (context) => CompanyListWidget(L10().customers, {"is_customer": "true"})));
}

View File

@ -6,7 +6,7 @@ import "package:inventree/widget/paginator.dart";
import "package:inventree/widget/part_detail.dart";
import "package:inventree/widget/refreshable_state.dart";
import "package:inventree/api.dart";
import "package:inventree/app_settings.dart";
import "package:inventree/preferences.dart";
import "package:inventree/l10.dart";

View File

@ -247,7 +247,7 @@ class _PurchaseOrderDetailState extends RefreshableState<PurchaseOrderDetailWidg
);
*/
if (order.isPlaced && InvenTreeAPI().supportPoReceive()) {
if (order.isPlaced && InvenTreeAPI().supportsPoReceive) {
children.add(
SimpleDialogOption(
onPressed: () {

View File

@ -1,21 +1,19 @@
/*
* Display a snackbar with:
*
* a) Text on the left
* b) Icon on the right
*
* | Text <icon> |
*/
import "package:flutter/material.dart";
import "package:font_awesome_flutter/font_awesome_flutter.dart";
import "package:one_context/one_context.dart";
import "package:inventree/l10.dart";
/*
* Display a configurable 'snackbar' at the bottom of the screen
*/
void showSnackIcon(String text, {IconData? icon, Function()? onAction, bool? success, String? actionText}) {
// Escape quickly if we do not have context
if (!OneContext.hasContext) {
return;
}
BuildContext? context = OneContext().context;
if (context != null) {

View File

@ -19,10 +19,9 @@ import "package:inventree/widget/stock_item_history.dart";
import "package:inventree/widget/stock_item_test_results.dart";
import "package:inventree/widget/stock_notes.dart";
import "package:inventree/l10.dart";
import "package:inventree/helpers.dart";
import "package:inventree/api.dart";
import "package:inventree/api_form.dart";
import "package:inventree/app_settings.dart";
import "package:inventree/preferences.dart";
class StockDetailWidget extends StatefulWidget {
@ -312,7 +311,7 @@ class _StockItemDisplayState extends RefreshableState<StockDetailWidget> {
Future <void> _addStockDialog() async {
// TODO: In future, deprecate support for older API
if (InvenTreeAPI().supportModernStockTransactions()) {
if (InvenTreeAPI().supportsModernStockTransactions) {
Map<String, dynamic> fields = {
"pk": {
@ -392,7 +391,7 @@ class _StockItemDisplayState extends RefreshableState<StockDetailWidget> {
void _removeStockDialog() {
// TODO: In future, deprecate support for the older API
if (InvenTreeAPI().supportModernStockTransactions()) {
if (InvenTreeAPI().supportsModernStockTransactions) {
Map<String, dynamic> fields = {
"pk": {
"parent": "items",
@ -464,7 +463,7 @@ class _StockItemDisplayState extends RefreshableState<StockDetailWidget> {
Future <void> _countStockDialog() async {
// TODO: In future, deprecate support for older API
if (InvenTreeAPI().supportModernStockTransactions()) {
if (InvenTreeAPI().supportsModernStockTransactions) {
Map<String, dynamic> fields = {
"pk": {
@ -567,7 +566,7 @@ class _StockItemDisplayState extends RefreshableState<StockDetailWidget> {
Future <void> _transferStockDialog(BuildContext context) async {
// TODO: In future, deprecate support for older API
if (InvenTreeAPI().supportModernStockTransactions()) {
if (InvenTreeAPI().supportsModernStockTransactions) {
Map<String, dynamic> fields = {
"pk": {
@ -1008,7 +1007,7 @@ class _StockItemDisplayState extends RefreshableState<StockDetailWidget> {
}
).then((result) {
if (result) {
successTone();
barcodeSuccessTone();
showSnackIcon(
L10().barcodeAssigned,

View File

@ -5,7 +5,7 @@ import "package:inventree/inventree/stock.dart";
import "package:inventree/widget/paginator.dart";
import "package:inventree/widget/refreshable_state.dart";
import "package:inventree/l10.dart";
import "package:inventree/app_settings.dart";
import "package:inventree/preferences.dart";
import "package:inventree/widget/stock_detail.dart";
import "package:inventree/api.dart";