65 lines
1.9 KiB
JavaScript
65 lines
1.9 KiB
JavaScript
|
import pg from "../postgres.js";
|
||
|
// Imports
|
||
|
import {
|
||
|
insertQuery,
|
||
|
selectWhereAnyQuery,
|
||
|
selectWhereAllQuery,
|
||
|
updateWhereAnyQuery,
|
||
|
} from "../pg-query.js";
|
||
|
// Constants
|
||
|
const table = "test_results";
|
||
|
// Queries
|
||
|
export const insertTestResult = (testResult) => {
|
||
|
const {
|
||
|
test_name,
|
||
|
test_class,
|
||
|
test_method,
|
||
|
test_path,
|
||
|
test_type,
|
||
|
test_timestamp,
|
||
|
test_retry,
|
||
|
origin,
|
||
|
failed,
|
||
|
failed_message,
|
||
|
screenshot_url,
|
||
|
expected_screenshot_url,
|
||
|
weblog_url,
|
||
|
} = testResult;
|
||
|
|
||
|
var query = insertQuery(table, {
|
||
|
test_name,
|
||
|
test_class,
|
||
|
test_method,
|
||
|
test_path,
|
||
|
test_type,
|
||
|
test_timestamp,
|
||
|
test_retry,
|
||
|
origin,
|
||
|
failed,
|
||
|
failed_message,
|
||
|
screenshot_url,
|
||
|
expected_screenshot_url,
|
||
|
weblog_url,
|
||
|
});
|
||
|
|
||
|
query += "\n RETURNING *";
|
||
|
return pg.query(query);
|
||
|
};
|
||
|
|
||
|
export const getCurrentlyFailing = () => {
|
||
|
const query = `WITH recent as (SELECT * FROM test_results WHERE (timestamp BETWEEN NOW() - INTERVAL '24 HOURS' AND NOW()) AND NOT(failed AND retry)) SELECT * FROM recent WHERE timestamp = (SELECT MAX(timestamp) FROM recent r2 WHERE recent.name = r2.name) AND failed;
|
||
|
`;
|
||
|
return pg.query(query);
|
||
|
|
||
|
/*SELECT * FROM test_results WHERE "timestamp" BETWEEN NOW() - INTERVAL '24 HOURS' AND NOW(); <-- Last 24 hours all runs*/
|
||
|
|
||
|
/* SELECT * FROM test_results tr1 WHERE timestamp BETWEEN NOW() - INTERVAL '24 HOURS' AND NOW() AND timestamp = (SELECT MAX(timestamp) FROM test_results tr2 WHERE tr1.name = tr2.name); <-- Last 24 hours only most recent
|
||
|
*/
|
||
|
};
|
||
|
|
||
|
export const getCurrentlyFailingFull = (env) => {
|
||
|
const query = `WITH recent AS (SELECT * FROM test_results WHERE (timestamp BETWEEN NOW() - INTERVAL '24 HOURS' AND NOW()) AND NOT(failed AND retry) AND env='prod') SELECT * FROM recent INNER JOIN test_catalog USING(name) WHERE timestamp = (SELECT MAX(timestamp) FROM recent r2 WHERE recent.name = r2.name) AND failed;
|
||
|
;`;
|
||
|
return pg.query(query);
|
||
|
};
|