Skip to content

Adds an update/delete test for libsql #302

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion c_sources/tokenizers.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

#define TOKENIZER_LIST opsqlite_wordtokenizer_init(db,&errMsg,nullptr);opsqlite_porter_init(db,&errMsg,nullptr);

#include "sqlite3.h"
#include <sqlite3.h>

namespace opsqlite {

Expand Down
4 changes: 0 additions & 4 deletions example/c_sources/tokenizers.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,7 @@

#define TOKENIZER_LIST opsqlite_wordtokenizer_init(db,&errMsg,nullptr);opsqlite_porter_init(db,&errMsg,nullptr);

#ifdef __ANDROID__
#include "sqlite3.h"
#else
#include <sqlite3.h>
#endif

namespace opsqlite {

Expand Down
112 changes: 56 additions & 56 deletions example/ios/Podfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -1950,83 +1950,83 @@ EXTERNAL SOURCES:
:path: "../node_modules/react-native/ReactCommon/yoga"

SPEC CHECKSUMS:
boost: 1dca942403ed9342f98334bf4c3621f011aa7946
DoubleConversion: f16ae600a246532c4020132d54af21d0ddb2a385
boost: 7e761d76ca2ce687f7cc98e698152abd03a18f90
DoubleConversion: cb417026b2400c8f53ae97020b2be961b59470cb
fast_float: 06eeec4fe712a76acc9376682e4808b05ce978b6
FBLazyVector: 84b955f7b4da8b895faf5946f73748267347c975
fmt: a40bb5bd0294ea969aaaba240a927bd33d878cdd
GCDWebServer: 2c156a56c8226e2d5c0c3f208a3621ccffbe3ce4
glog: 08b301085f15bcbb6ff8632a8ebaf239aae04e6a
glog: 5683914934d5b6e4240e497e0f4a3b42d1854183
hermes-engine: 314be5250afa5692b57b4dd1705959e1973a8ebe
op-sqlite: d58de9322037133d8da81961b1cb49fc799e2e46
op-sqlite: 3542bd9b1f45190426e95ee3873b09349be96335
RCT-Folly: e78785aa9ba2ed998ea4151e314036f6c49e6d82
RCTDeprecation: 83ffb90c23ee5cea353bd32008a7bca100908f8c
RCTRequired: eb7c0aba998009f47a540bec9e9d69a54f68136e
RCTTypeSafety: 659ae318c09de0477fd27bbc9e140071c7ea5c93
React: c2d3aa44c49bb34e4dfd49d3ee92da5ebacc1c1c
React-callinvoker: 1bdfb7549b5af266d85757193b5069f60659ef9d
React-Core: 7150cf9b6a5af063b37003062689f1691e79c020
React-CoreModules: 15a85e6665d61678942da6ae485b351f4c699049
React-cxxreact: 74f9de59259ac951923f5726aa14f0398f167af9
React-Core: 10597593fdbae06f0089881e025a172e51d4a769
React-CoreModules: 6907b255529dd46895cf687daa67b24484a612c2
React-cxxreact: a9f5b8180d6955bc3f6a3fcd657c4d9b4d95c1f6
React-debug: e74e76912b91e08d580c481c34881899ccf63da9
React-defaultsnativemodule: 628285212bbd65417d40ad6a9f8781830fda6c98
React-domnativemodule: 185d9808198405c176784aaf33403d713bd24fb7
React-Fabric: c814804affbe1952e16149ddd20256e1bccae67e
React-FabricComponents: 81ef47d596966121784afec9924f9562a29b1691
React-FabricImage: f14f371d678aa557101def954ac3ba27e48948ff
React-defaultsnativemodule: 11f6ee2cf69bf3af9d0f28a6253def33d21b5266
React-domnativemodule: f940bbc4fa9e134190acbf3a4a9f95621b5a8f51
React-Fabric: 6f5c357bf3a42ff11f8844ad3fc7a1eb04f4b9de
React-FabricComponents: 10e0c0209822ac9e69412913a8af1ca33573379b
React-FabricImage: f582e764072dfa4715ae8c42979a5bace9cbcc12
React-featureflags: d5facceff8f8f6de430e0acecf4979a9a0839ba9
React-featureflagsnativemodule: 96f0ab285382d95c90f663e02526a5ceefa95a11
React-graphics: 1a66ee0a3f093b125b853f6370296fadcaf6f233
React-hermes: 8b86e5f54a65ecb69cdf22b3a00a11562eda82d2
React-idlecallbacksnativemodule: 5c25ab145c602264d00cb26a397ab52e0efa031c
React-ImageManager: 15e34bd5ef1ac4a18e96660817ef70a7f99ee8c2
React-jserrorhandler: 02cdf2cd45350108be1ffd2b164578936dbbdff7
React-jsi: 6af1987cfbb1b6621664fdbf6c7b62bd4d38c923
React-jsiexecutor: 51f372998e0303585cb0317232b938d694663cbd
React-jsinspector: 3539ad976d073bfaa8a7d2fa9bef35e70e55033e
React-jsinspectortracing: e8dbacaf67c201f23052ca1c2bae2f7b84dec443
React-jsitooling: 95a34f41e3c249d42181de13b4f8d854f178ca9f
React-jsitracing: 25b029cf5cad488252d46da19dd8c4c134fd5fe4
React-logger: 368570a253f00879a1e4fea24ed4047e72e7bbf3
React-Mapbuffer: c04fcda1c6281fc0a6824c7dcc1633dd217ac1ec
React-microtasksnativemodule: ca2804a25fdcefffa0aa942aa23ab53b99614a34
react-native-http-bridge-refurbished: e2e45508ec1573999ace69a0b880eee8f0e5bab2
react-native-restart: 7595693413fe3ca15893702f2c8306c62a708162
React-NativeModulesApple: 452b86b29fae99ed0a4015dca3ad9cd222f88abf
React-featureflagsnativemodule: a7dd141f1ef4b7c1331af0035689fbc742a49ff4
React-graphics: 36ae3407172c1c77cea29265d2b12b90aaef6aa0
React-hermes: 9116d4e6d07abeb519a2852672de087f44da8f12
React-idlecallbacksnativemodule: ae7f5ffc6cf2d2058b007b78248e5b08172ad5c3
React-ImageManager: 9daee0dc99ad6a001d4b9e691fbf37107e2b7b54
React-jserrorhandler: 1e6211581071edaf4ecd5303147328120c73f4dc
React-jsi: 753ba30c902f3a41fa7f956aca8eea3317a44ee6
React-jsiexecutor: 47520714aa7d9589c51c0f3713dfbfca4895d4f9
React-jsinspector: cfd27107f6d6f1076a57d88c932401251560fe5f
React-jsinspectortracing: 76a7d791f3c0c09a0d2bf6f46dfb0e79a4fcc0ac
React-jsitooling: 995e826570dd58f802251490486ebd3244a037ab
React-jsitracing: 094ae3d8c123cea67b50211c945b7c0443d3e97b
React-logger: 8edfcedc100544791cd82692ca5a574240a16219
React-Mapbuffer: c3f4b608e4a59dd2f6a416ef4d47a14400194468
React-microtasksnativemodule: 054f34e9b82f02bd40f09cebd4083828b5b2beb6
react-native-http-bridge-refurbished: 1bd13b32a8e62abe61bab809c26e2dcf21256ed7
react-native-restart: 0bc732f4461709022a742bb29bcccf6bbc5b4863
React-NativeModulesApple: 2c4377e139522c3d73f5df582e4f051a838ff25e
React-oscompat: ef5df1c734f19b8003e149317d041b8ce1f7d29c
React-perflogger: 6fd2f6811533e9c19a61e855c3033eecbf4ad2a0
React-performancetimeline: abf31259d794c9274b3ea19c5016186925eec6c4
React-perflogger: 9a151e0b4c933c9205fd648c246506a83f31395d
React-performancetimeline: 5b0dfc0acba29ea0269ddb34cd6dd59d3b8a1c66
React-RCTActionSheet: a499b0d6d9793886b67ba3e16046a3fef2cdbbc3
React-RCTAnimation: 2595dcb10a82216a511b54742f8c28d793852ac6
React-RCTAppDelegate: f03604b70f57c9469a84a159d8abecf793a5bcff
React-RCTBlob: e00f9b4e2f151938f4d9864cf33ebf24ac03328a
React-RCTFabric: 3945d116fd271598db262d4e6ed5691d431ed9e8
React-RCTFBReactNativeSpec: 0f4d4f0da938101f2ca9d5333a8f46e527ad2819
React-RCTImage: dac5e9f8ec476aefe6e60ee640ebc1dfaf1a4dbe
React-RCTLinking: 494b785a40d952a1dfbe712f43214376e5f0e408
React-RCTNetwork: b3d7c30cd21793e268db107dd0980cb61b3c1c44
React-RCTRuntime: a8ff419d437228e7b8a793b14f9d711e1cbb82af
React-RCTSettings: a060c7e381a3896104761b8eed7e284d95e37df3
React-RCTText: 4f272b72dbb61f390d8c8274528f9fdbff983806
React-RCTVibration: 0e5326220719aca12473d703aa46693e3b4ce67a
React-RCTAnimation: cc64adc259aabc3354b73065e2231d796dfce576
React-RCTAppDelegate: 9d523da768f1c9e84c5f3b7e3624d097dfb0e16b
React-RCTBlob: e727f53eeefded7e6432eb76bd22b57bc880e5d1
React-RCTFabric: 58590aa4fdb4ad546c06a7449b486cf6844e991f
React-RCTFBReactNativeSpec: 9064c63d99e467a3893e328ba3612745c3c3a338
React-RCTImage: 7159cbdbb18a09d97ba1a611416eced75b3ccb29
React-RCTLinking: 46293afdb859bccc63e1d3dedc6901a3c04ef360
React-RCTNetwork: 4a6cd18f5bcd0363657789c64043123a896b1170
React-RCTRuntime: 5ab904fd749aa52f267ef771d265612582a17880
React-RCTSettings: 61e361dc85136d1cb0e148b7541993d2ee950ea7
React-RCTText: abd1e196c3167175e6baef18199c6d9d8ac54b4e
React-RCTVibration: 490e0dcb01a3fe4a0dfb7bc51ad5856d8b84f343
React-rendererconsistency: 351fdbc5c1fe4da24243d939094a80f0e149c7a1
React-renderercss: d333f2ada83969591100d91ec6b23ca2e17e1507
React-rendererdebug: 039e5949b72ba63c703de020701e3fd152434c61
React-renderercss: 3438814bee838ae7840a633ab085ac81699fd5cf
React-rendererdebug: 0ac2b9419ad6f88444f066d4b476180af311fb1e
React-rncore: 57ed480649bb678d8bdc386d20fee8bf2b0c307c
React-RuntimeApple: 344a5e1105256000afabaa8df12c3e4cab880340
React-RuntimeCore: 0e48fb5e5160acc0334c7a723a42d42cef4b58b6
React-RuntimeApple: 8b7a9788f31548298ba1990620fe06b40de65ad7
React-RuntimeCore: e03d96fbd57ce69fd9bca8c925942194a5126dbc
React-runtimeexecutor: d60846710facedd1edb70c08b738119b3ee2c6c2
React-RuntimeHermes: 064286a03871d932c99738e0f8ef854962ab4b99
React-runtimescheduler: e917ab17ae08c204af1ebf8f669b7e411b0220c8
React-RuntimeHermes: aab794755d9f6efd249b61f3af4417296904e3ba
React-runtimescheduler: c3cd124fa5db7c37f601ee49ca0d97019acd8788
React-timing: a90f4654cbda9c628614f9bee68967f1768bd6a5
React-utils: 51c4e71608b8133fecc9a15801d244ae7bdf3758
ReactAppDependencyProvider: d5dcc564f129632276bd3184e60f053fcd574d6b
ReactCodegen: fda99a79c866370190e162083a35602fdc314e5d
ReactCommon: 4d0da92a5eb8da86c08e3ec34bd23ab439fb2461
RNShare: a21b3cdcf22b8aa699cd54aaec8ae1c1ca709559
React-utils: a612d50555b6f0f90c74b7d79954019ad47f5de6
ReactAppDependencyProvider: 04d5eb15eb46be6720e17a4a7fa92940a776e584
ReactCodegen: c63eda03ba1d94353fb97b031fc84f75a0d125ba
ReactCommon: 76d2dc87136d0a667678668b86f0fca0c16fdeb0
RNShare: a9f1a356b3f46e5395d9885687c296b116699176
SocketRocket: d4aabe649be1e368d1318fdf28a022d714d65748
Yoga: c758bfb934100bb4bf9cbaccb52557cee35e8bdf

PODFILE CHECKSUM: 74b5ec2885cdfc97dce635b4ac32258ec9fa3179

COCOAPODS: 1.16.2
COCOAPODS: 1.15.2
68 changes: 68 additions & 0 deletions example/src/tests/queries.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -772,5 +772,73 @@ export function queriesTests() {
console.warn(res.rows);
expect(res.rows).to.eql([{user_version: 0}]);
});

it('Can create, update and delete a row', async () => {
// Create a row
const id = chance.integer();
const name = chance.name();
const age = chance.integer();
const networth = chance.floating();

const insertRes = await db.execute(
'INSERT INTO User (id, name, age, networth) VALUES(?, ?, ?, ?)',
[id, name, age, networth],
);

expect(insertRes.rowsAffected).to.equal(1);
expect(insertRes.insertId).to.equal(1);

// Check the result is there
const selectRes = await db.execute('SELECT * FROM User WHERE id = ?', [
id,
]);
expect(selectRes.rows.length).to.equal(1);
expect(selectRes.rows[0]).to.eql({
id,
name,
age,
networth,
nickname: null,
});

// Update the row
const newName = chance.name();
const newAge = chance.integer();
const updateRes = await db.execute(
'UPDATE User SET name = ?, age = ? WHERE id = ?',
[newName, newAge, id],
);

// Check the affected rows result
expect(updateRes.rowsAffected).to.equal(1);

// Check the result itself
const selectAfterUpdateRes = await db.execute(
'SELECT * FROM User WHERE id = ?',
[id],
);
expect(selectAfterUpdateRes.rows.length).to.equal(1);
expect(selectAfterUpdateRes.rows[0]).to.eql({
id,
name: newName,
age: newAge,
networth,
nickname: null,
});

// Delete the row
const deleteRes = await db.execute('DELETE FROM User WHERE id = ?', [id]);
expect(deleteRes.rowsAffected).to.equal(1);

// Check the table state again
const selectAfterDeleteRes = await db.execute(
'SELECT * FROM User WHERE id = ?',
[id],
);
expect(selectAfterDeleteRes.rows.length).to.equal(0);

const allRowsRes = await db.execute('SELECT * FROM User');
expect(allRowsRes.rows.length).to.equal(0);
});
});
}
Loading