sphinxql
Version:
SphinxQL query builder for Node.JS. Supports Sphinx search(2.x and 3.x) and Manticore search
48 lines (38 loc) • 1.38 kB
text/typescript
import QueryBuilder from '../../src/QueryBuilder';
import SphinxClient from '../../src/SphinxClient';
require('iconv-lite').encodingExists('foo'); // fix bug with mysql2 and Jest
describe('Tests for DELETE statement', () => {
const params = {
host: '127.0.0.1',
port: 9307,
};
const conn = new SphinxClient(params);
beforeAll(() => {
conn.close();
});
test('deletes with a where condition', () => {
const compiledQuery = new QueryBuilder(conn)
.delete('rt')
.where('id', '=', 2)
.generate();
const expectedQuery = `DELETE FROM rt WHERE id = 2`;
expect(compiledQuery).toBe(expectedQuery);
});
test('deletes with a match condition', () => {
const compiledQuery = new QueryBuilder(conn)
.delete('rt')
.match(['title', 'content'], 'dinosaur')
.generate();
const expectedQuery = `DELETE FROM rt WHERE MATCH('(@(title,content) dinosaur)')`;
expect(compiledQuery).toBe(expectedQuery);
});
test('deletes with multiple conditions', () => {
const compiledQuery = new QueryBuilder(conn)
.delete('rt')
.match(['title', 'content'], 'dinosaur')
.where('published_at', '<', 2030)
.generate();
const expectedQuery = `DELETE FROM rt WHERE MATCH('(@(title,content) dinosaur)') AND published_at < 2030`;
expect(compiledQuery).toBe(expectedQuery);
});
});