k-mfds-fooddb-mcp-server
Version:
식품의약품안전처 식품영양성분DB를 MCP 도구로 제공합니다.
87 lines (81 loc) • 3.4 kB
text/typescript
import { getFoodNutritionComponentDatabaseInquery } from '../src/external/mfds/api';
import { searchFoodNutritionInfo } from '../src/external/mfds/service';
import { SearchFoodNutritionRequest } from '../src/external/mfds/dtos/SearchFoodNutritionRequest';
describe('MFDS API E2E 테스트 (실제 API 호출)', () => {
it('getFoodNutritionComponentDatabaseInquery - 기본 검색 (우유)', async () => {
const result = await getFoodNutritionComponentDatabaseInquery(
'우유', // 실제 존재하는 식품명
'',
''
);
expect(result).toBeDefined();
expect(result.items.length).toBeGreaterThan(0);
expect(result.items[0].FOOD_NM_KR).toContain('우유');
});
it('getFoodNutritionComponentDatabaseInquery - 업체명으로 검색 (크리스피크림도넛)', async () => {
const result = await getFoodNutritionComponentDatabaseInquery(
'', // 식품명 없음
'',
'크리스피크림도넛' // 업체명으로 검색
);
expect(result).toBeDefined();
expect(result.items.length).toBeGreaterThan(0);
expect(result.items[0].MAKER_NM).toContain('크리스피크림도넛');
});
it('getFoodNutritionComponentDatabaseInquery - 식품대분류명으로 검색 (빵 및 과자류)', async () => {
const result = await getFoodNutritionComponentDatabaseInquery(
'', // 식품명 없음
'',
'', // 업체명 없음
1, // pageNo
10, // numOfRows
'json', // type
'빵 및 과자류' // 식품대분류명
);
expect(result).toBeDefined();
expect(result.items.length).toBeGreaterThan(0);
expect(result.items[0].FOOD_CAT1_NM).toBe('빵 및 과자류');
});
it('searchFoodNutritionInfo - 기본 검색 (우유)', async () => {
const req = new SearchFoodNutritionRequest({
foodNameKr: '우유',
researchYearMonthDate: '', // 날짜 없이 요청
makerName: ''
});
const result = await searchFoodNutritionInfo(req);
console.log('실제 API 응답:', result);
expect(result).toBeDefined();
expect(result.data.length).toBeGreaterThan(0);
expect(result.data[0].foodNameKr).toContain('우유');
});
it('searchFoodNutritionInfo - 업체명으로 검색', async () => {
const req = new SearchFoodNutritionRequest({
foodNameKr: '',
researchYearMonthDate: '',
makerName: '크리스피크림도넛',
pageNo: 1,
numOfRows: 5,
type: 'json'
});
const result = await searchFoodNutritionInfo(req);
console.log('업체명 검색 결과:', result);
expect(result).toBeDefined();
expect(result.data.length).toBeGreaterThan(0);
expect(result.data[0].makerName).toContain('크리스피크림도넛');
});
it('searchFoodNutritionInfo - 식품대분류명으로 검색', async () => {
const req = new SearchFoodNutritionRequest({
foodNameKr: '',
researchYearMonthDate: '',
makerName: '',
foodCategory1Name: '빵 및 과자류',
pageNo: 1,
numOfRows: 3
});
const result = await searchFoodNutritionInfo(req);
console.log('식품대분류명 검색 결과:', result);
expect(result).toBeDefined();
expect(result.data.length).toBeGreaterThan(0);
expect(result.data[0].foodCategory1Name).toBe('빵 및 과자류');
});
});