Skip to content

Commit

Permalink
feat: openfoodfacts#301 - test fine-tuning
Browse files Browse the repository at this point in the history
Impacted file:
* `api_saveProduct_test.dart`: clearer test
  • Loading branch information
monsieurtanuki committed Dec 4, 2021
1 parent ed29a4e commit 16e2930
Showing 1 changed file with 25 additions and 16 deletions.
41 changes: 25 additions & 16 deletions test/api_saveProduct_test.dart
Expand Up @@ -91,17 +91,22 @@ void main() {
Duration(seconds: 90),
));

String _getRandomTimestamp({int random = 100000}) =>
DateTime.now().toString() +
' (' +
Random().nextInt(random).toString() +
')';

test('dont overwrite language', () async {
String barcode = '4008391212596';
const String barcode = '4008391212596';
// Assign random product names, to make sure we won't fail to update the
// product and then read a previously written value
String frenchProductName = "Flocons d'epeautre au blé complet " +
Random().nextInt(100000).toString();
String germanProductName =
'Dinkelflakes' + Random().nextInt(100000).toString();
final String frenchProductName =
"Flocons d'epeautre au blé complet " + _getRandomTimestamp();
final String germanProductName = 'Dinkelflakes' + _getRandomTimestamp();

// save french product name
Product frenchProduct = Product(
final Product frenchProduct = Product(
barcode: barcode,
productNameInLanguages: {
OpenFoodFactsLanguage.FRENCH: frenchProductName
Expand All @@ -111,15 +116,15 @@ void main() {
lang: OpenFoodFactsLanguage.FRENCH,
);

Status frenchStatus = await OpenFoodAPIClient.saveProduct(
final Status frenchStatus = await OpenFoodAPIClient.saveProduct(
TestConstants.TEST_USER,
frenchProduct,
);
expect(frenchStatus.status, 1);
expect(frenchStatus.statusVerbose, 'fields saved');

// save german product name
Product germanProduct = Product(
final Product germanProduct = Product(
barcode: barcode,
productNameInLanguages: {
OpenFoodFactsLanguage.GERMAN: germanProductName
Expand All @@ -129,46 +134,46 @@ void main() {
lang: OpenFoodFactsLanguage.GERMAN,
);

Status germanStatus = await OpenFoodAPIClient.saveProduct(
final Status germanStatus = await OpenFoodAPIClient.saveProduct(
TestConstants.TEST_USER,
germanProduct,
);
expect(germanStatus.status, 1);
expect(germanStatus.statusVerbose, 'fields saved');

// get french fields for product
ProductQueryConfiguration frenchConfig = ProductQueryConfiguration(
final ProductQueryConfiguration frenchConfig = ProductQueryConfiguration(
barcode,
language: OpenFoodFactsLanguage.FRENCH,
fields: [
ProductField.NAME,
ProductField.BRANDS,
ProductField.QUANTITY
]);
var frenchResult = await OpenFoodAPIClient.getProduct(
final frenchResult = await OpenFoodAPIClient.getProduct(
frenchConfig,
);
expect(frenchResult.product, isNotNull);
expect(frenchResult.product!.productName, frenchProductName);

// get german fields for product
ProductQueryConfiguration germanConfig = ProductQueryConfiguration(
final ProductQueryConfiguration germanConfig = ProductQueryConfiguration(
barcode,
language: OpenFoodFactsLanguage.GERMAN,
fields: [
ProductField.NAME,
ProductField.BRANDS,
ProductField.QUANTITY
]);
var germanResult = await OpenFoodAPIClient.getProduct(
final germanResult = await OpenFoodAPIClient.getProduct(
germanConfig,
);

expect(germanResult.product, isNotNull);
expect(germanResult.product!.productName, germanProductName);

// get preferably French, then German fields for product
ProductQueryConfiguration frenchGermanConfig =
final ProductQueryConfiguration frenchGermanConfig =
ProductQueryConfiguration(barcode, languages: [
OpenFoodFactsLanguage.FRENCH,
OpenFoodFactsLanguage.GERMAN,
Expand All @@ -177,13 +182,17 @@ void main() {
ProductField.BRANDS,
ProductField.QUANTITY
]);
var frenchGermanResult = await OpenFoodAPIClient.getProduct(
final frenchGermanResult = await OpenFoodAPIClient.getProduct(
frenchGermanConfig,
);

expect(frenchGermanResult.product, isNotNull);
expect(frenchGermanResult.product!.productName, frenchProductName);
});
},
timeout: Timeout(
// this guy is rather slow
Duration(seconds: 90),
));

test('add new product test 2', () async {
Product product = Product(
Expand Down

0 comments on commit 16e2930

Please sign in to comment.