products.ts•4.41 kB
import { Product, ProductResponse, SearchResponse } from '../../src/types.js';
export const mockNutellaProduct: Product = {
code: '3017620422003',
product_name: 'Nutella',
brands: 'Ferrero',
categories: 'Sweet spreads, Chocolate spreads, Hazelnut spreads',
ingredients_text: 'Sugar, palm oil, hazelnuts (13%), skimmed milk powder (8.7%), fat-reduced cocoa (7.4%), emulsifier: lecithins (soya), vanillin.',
nutriments: {
'energy-kcal_100g': 539,
'fat_100g': 30.9,
'saturated-fat_100g': 10.6,
'carbohydrates_100g': 57.5,
'sugars_100g': 56.3,
'fiber_100g': 0,
'proteins_100g': 6.3,
'salt_100g': 0.107,
'sodium_100g': 0.043,
},
nutriscore_grade: 'e',
nova_group: 4,
ecoscore_grade: 'd',
image_url: 'https://images.openfoodfacts.org/images/products/301/762/042/2003/front_en.4.400.jpg',
image_front_url: 'https://images.openfoodfacts.org/images/products/301/762/042/2003/front_en.4.400.jpg',
quantity: '400g',
packaging: 'Plastic jar',
labels: 'No palm oil',
countries: 'France',
manufacturing_places: 'France',
stores: 'Carrefour, Leclerc',
created_datetime: '2012-08-24T14:56:20Z',
last_modified_datetime: '2023-11-15T10:30:45Z',
};
export const mockHealthyYogurtProduct: Product = {
code: '3229820787015',
product_name: 'Greek Yogurt Natural',
brands: 'Danone',
categories: 'Dairies, Yogurts, Plain yogurts',
ingredients_text: 'Milk, milk proteins, lactic ferments (Lactobacillus bulgaricus, Streptococcus thermophilus)',
nutriments: {
'energy-kcal_100g': 97,
'fat_100g': 5.0,
'saturated-fat_100g': 3.2,
'carbohydrates_100g': 4.0,
'sugars_100g': 4.0,
'fiber_100g': 0,
'proteins_100g': 10.3,
'salt_100g': 0.13,
'sodium_100g': 0.052,
},
nutriscore_grade: 'b',
nova_group: 1,
ecoscore_grade: 'c',
image_url: 'https://images.openfoodfacts.org/images/products/322/982/078/7015/front_en.4.400.jpg',
quantity: '500g',
packaging: 'Plastic pot',
labels: 'Organic, High protein',
countries: 'France',
created_datetime: '2020-03-15T09:20:10Z',
last_modified_datetime: '2023-10-01T15:45:30Z',
};
export const mockVeganProduct: Product = {
code: '8712566073219',
product_name: 'Oat Drink Original',
brands: 'Alpro',
categories: 'Plant-based foods, Beverages, Plant-based beverages, Oat drinks',
ingredients_text: 'Oat base (water, oats 10%), rapeseed oil, sea salt, stabilizer (diphosphates), acidity regulator (potassium phosphates), calcium carbonate, calcium phosphates, iodised salt, vitamins (riboflavin (B2), B12, D2)',
nutriments: {
'energy-kcal_100g': 42,
'fat_100g': 1.5,
'saturated-fat_100g': 0.2,
'carbohydrates_100g': 6.6,
'sugars_100g': 4.1,
'fiber_100g': 0.8,
'proteins_100g': 0.3,
'salt_100g': 0.1,
},
nutriscore_grade: 'b',
nova_group: 3,
ecoscore_grade: 'b',
quantity: '1L',
packaging: 'Tetra pak',
labels: 'Vegan, Plant-based, No added sugars',
countries: 'Belgium',
created_datetime: '2019-05-20T11:15:25Z',
last_modified_datetime: '2023-09-12T08:30:15Z',
};
export const mockNutellaProductResponse: ProductResponse = {
status: 1,
status_verbose: 'product found',
product: mockNutellaProduct,
};
export const mockHealthyYogurtProductResponse: ProductResponse = {
status: 1,
status_verbose: 'product found',
product: mockHealthyYogurtProduct,
};
export const mockVeganProductResponse: ProductResponse = {
status: 1,
status_verbose: 'product found',
product: mockVeganProduct,
};
export const mockProductNotFoundResponse: ProductResponse = {
status: 0,
status_verbose: 'product not found',
};
export const mockSearchResponse: SearchResponse = {
count: 150,
page: 1,
page_count: 8,
page_size: 20,
products: [
mockNutellaProduct,
mockHealthyYogurtProduct,
mockVeganProduct,
],
};
export const mockEmptySearchResponse: SearchResponse = {
count: 0,
page: 1,
page_count: 0,
page_size: 20,
products: [],
};
export const mockBarcodes = {
nutella: '3017620422003',
yogurt: '3229820787015',
oatDrink: '8712566073219',
notFound: '0000000000000',
invalid: 'invalid-barcode',
};
export const mockApiResponses = {
[mockBarcodes.nutella]: mockNutellaProductResponse,
[mockBarcodes.yogurt]: mockHealthyYogurtProductResponse,
[mockBarcodes.oatDrink]: mockVeganProductResponse,
[mockBarcodes.notFound]: mockProductNotFoundResponse,
};