intern-Assignment/Sequelize-library/node_modules/pg-hstore/test/parse.js
2025-01-31 15:20:39 +05:30

122 lines
3.6 KiB
JavaScript

/*globals it, describe, beforeEach */
(function () {
'use strict';
var should = require('should'),
assert= require('assert'),
HStore = require('../lib/index.js'),
hstore;
describe('pg-hstore.parse', function () {
beforeEach(function () {
hstore = new HStore();
});
it('should hstore parse an hstore string', function (done) {
var source = '"foo"=>"bar"';
hstore.parse(source, function (target) {
should.exist(target);
target.foo.should.equal('bar');
done();
});
});
it('should hstore parse an empty hstore string', function (done) {
var source = '';
hstore.parse(source, function (target) {
should.exist(target);
target.should.eql({});
done();
});
});
it('should hstore parse an hstore string with multiple values', function (done) {
var source = '"foo"=>"oof","bar"=>"rab","baz"=>"zab"';
hstore.parse(source, function (target) {
should.exist(target);
target.foo.should.equal('oof');
target.bar.should.equal('rab');
target.baz.should.equal('zab');
done();
});
});
it('should hstore parse an escaped quoted string with quotes', function (done) {
var source = '"foo"=>"\\"bar\\""';
hstore.parse(source, function (target) {
should.exist(target);
target.foo.should.equal('"bar"');
done();
});
});
it('should hstore parse an escaped quoted string with single quotes', function (done) {
var source = '"foo"=>"\'\'bar\'\'"';
hstore.parse(source, function (target) {
should.exist(target);
target.foo.should.equal('\'bar\'');
done();
});
});
it('should hstore parse a string with escaped backslashes', function (done) {
var source = '"foo"=>"\\\\f0123"';
hstore.parse(source, function (target) {
should.exist(target);
target.foo.should.equal('\\f0123');
done();
});
});
it('should hstore parse a string with commas', function (done) {
var source = '"foo"=>"bar,foo,bar"';
hstore.parse(source, function (target) {
should.exist(target);
target.foo.should.equal('bar,foo,bar');
done();
});
});
it('should hstore parse a string with advanced types', function (done) {
var source = '"foo"=>"{\\"key\\":\\"value\\",\\"key2\\":\\"value\\"}"';
hstore.parse(source, function (target) {
should.exist(target);
target.foo.should.equal('{"key":"value","key2":"value"}');
done();
});
});
it('should hstore parse a string with NULL values', function (done) {
var source = '"foo"=>"oof","bar"=>NULL,"baz"=>"zab"';
hstore.parse(source, function (target) {
should.exist(target);
target.foo.should.equal('oof');
assert.equal(target.bar, null);
target.baz.should.equal('zab');
done();
});
});
it('should hstore parse a string with \n values', function (done) {
var source = '"foo"=>"o\rof","bar"=>NULL,"baz"=>"z\nab"';
hstore.parse(source, function (target) {
should.exist(target);
target.foo.should.equal('o\rof');
assert.equal(target.bar, null);
target.baz.should.equal('z\nab');
done();
});
});
it('should hstore parse a string ending with \\', function (done) {
var source = '"url"=>"http://google.com\\\\","foo"=>"bar"';
hstore.parse(source, function (target) {
should.exist(target);
target.url.should.equal('http://google.com\\');
target.foo.should.equal('bar');
done();
});
});
});
})();