Files
GenAIExamples/DBQnA/ui/react/src/App.test.tsx
Yao Qing 72f8079289 Refactor text2sql. (#1304)
Signed-off-by: Yao, Qing <qing.yao@intel.com>
Signed-off-by: chensuyue <suyue.chen@intel.com>
2025-01-02 10:52:21 +08:00

53 lines
1.3 KiB
TypeScript

import axios from 'axios';
import { exec } from 'child_process';
const apiTimeOutInSeconds = 300;
// Helper function to get the host IP
const getHostIP = () => {
return new Promise<string>((resolve, reject) => {
exec('hostname -I | awk \'{print $1}\'', (error, stdout, stderr) => {
if (error) {
reject(`Error fetching IP address: ${error.message}`);
} else if (stderr) {
reject(`Stderr: ${stderr}`);
} else {
resolve(stdout.trim());
}
});
});
};
test('testing api with dynamic host', async () => {
// Get the dynamic host IP
const host = await getHostIP();
const endpointUrl = `http://${host}:9090/v1/text2sql`;
const formData = {
user: 'postgres',
database: 'chinook',
host: host, // Dynamic IP
password: 'testpwd',
port: '5442',
};
const question = "Find the total number of invoices.";
const payload = {
input_text: question,
conn_str: formData,
};
const response = await axios.post(endpointUrl, payload);
expect(response.status).toBe(200);
const result = response.data.result;
console.log(result);
expect(result.hasOwnProperty('sql')).toBe(true);
expect(result.hasOwnProperty('output')).toBe(true);
expect(result.hasOwnProperty('input')).toBe(true);
expect(result.input.input_text).toBe(question);
}, apiTimeOutInSeconds * 1000);