Skip to content

Commit

Permalink
ci: add DATE check
Browse files Browse the repository at this point in the history
  • Loading branch information
wellwelwel committed Jul 1, 2024
1 parent 1a5f2ed commit 6922d63
Showing 1 changed file with 50 additions and 23 deletions.
73 changes: 50 additions & 23 deletions test/esm/integration/parsers/typecast-field-string.test.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -13,45 +13,72 @@ const conn = createConnection({

describe('typeCast field.string', describeOptions);

const query = new Map();
const execute = new Map();
const query = {};
const execute = {};

await conn.query(
'CREATE TEMPORARY TABLE tmp_tiny (`tiny` TINYINT, `tinyUnsigned` TINYINT UNSIGNED)',
);
await conn.query(
'CREATE TEMPORARY TABLE tmp_date (`timestamp` TIMESTAMP, `time` TIME)',
'CREATE TEMPORARY TABLE `tmp_tiny` (`signed` TINYINT, `unsigned` TINYINT UNSIGNED)',
);
await conn.query('CREATE TEMPORARY TABLE `tmp_date` (`timestamp` TIMESTAMP)');

await conn.query('INSERT INTO tmp_tiny (`tiny`, `tinyUnsigned`) VALUES (0, 1)');
await conn.query('INSERT INTO `tmp_tiny` (`signed`, `unsigned`) VALUES (0, 1)');
await conn.query(
'INSERT INTO tmp_date (`timestamp`, `time`) VALUES (CURRENT_TIMESTAMP(), CURTIME())',
'INSERT INTO `tmp_date` (`timestamp`) VALUES (CURRENT_TIMESTAMP())',
);

{
const [date] = await conn.query('SELECT NOW() AS `now`');
const [time] = await conn.query('SELECT timestamp, time FROM tmp_date');
const [tinyint] = await conn.query('SELECT tiny, tinyUnsigned FROM tmp_tiny');
const [date] = await conn.query(
'SELECT STR_TO_DATE("2022-06-28", "%Y-%m-%d") AS `date`',
);
const [time] = await conn.query(
'SELECT STR_TO_DATE("12:34:56", "%H:%i:%s") AS `time`',
);
const [datetime] = await conn.query(
'SELECT STR_TO_DATE("2022-06-28 12:34:56", "%Y-%m-%d %H:%i:%s") AS `datetime`',
);
const [timestamp] = await conn.query('SELECT `timestamp` FROM `tmp_date`');
const [tiny] = await conn.query(
'SELECT `signed`, `unsigned` FROM `tmp_tiny`',
);

query.set('date', date[0]);
query.set('time', time[0]);
query.set('tiny', tinyint[0]);
query.date = date[0].date;
query.time = time[0].time;
query.timestamp = timestamp[0].timestamp;
query.datetime = datetime[0].datetime;
query.tiny = tiny[0];
}

{
const [date] = await conn.execute('SELECT NOW() AS `now`');
const [time] = await conn.execute('SELECT timestamp, time FROM tmp_date');
const [tinyint] = await conn.query('SELECT tiny, tinyUnsigned FROM tmp_tiny');
const [date] = await conn.execute(
'SELECT STR_TO_DATE("2022-06-28", "%Y-%m-%d") AS `date`',
);
const [time] = await conn.execute(
'SELECT STR_TO_DATE("12:34:56", "%H:%i:%s") AS `time`',
);
const [datetime] = await conn.execute(
'SELECT STR_TO_DATE("2022-06-28 12:34:56", "%Y-%m-%d %H:%i:%s") AS `datetime`',
);
const [timestamp] = await conn.execute('SELECT `timestamp` FROM `tmp_date`');
const [tiny] = await conn.execute(
'SELECT `signed`, `unsigned` FROM `tmp_tiny`',
);

execute.set('date', date[0]);
execute.set('time', time[0]);
execute.set('tiny', tinyint[0]);
execute.date = date[0].date;
execute.time = time[0].time;
execute.timestamp = timestamp[0].timestamp;
execute.datetime = datetime[0].datetime;
execute.tiny = tiny[0];
}

await conn.end();

assert.deepStrictEqual(query.date, execute.date, 'DATE');
assert.deepStrictEqual(query.time, execute.time, 'TIME');
assert.deepStrictEqual(query.datetime, execute.datetime, 'DATETIME');
assert.deepStrictEqual(query.timestamp, execute.timestamp, 'TIMESTAMP');
assert.deepStrictEqual(query.tiny.signed, execute.tiny.signed, 'TINY (signed)');
assert.deepStrictEqual(
query,
execute,
'Ensures the same behavior for field.string',
query.tiny.unsigned,
execute.tiny.unsigned,
'TINY (unsigned)',
);

0 comments on commit 6922d63

Please sign in to comment.