Skip to content

Commit 4b23e70

Browse files
authored
minor test updates (#36)
1 parent f0da2f9 commit 4b23e70

File tree

5 files changed

+48
-28
lines changed

5 files changed

+48
-28
lines changed

tests/fixtures.ts

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,12 @@ import { DataAPIClient } from '@/src/client';
2222
import { Context } from 'mocha';
2323

2424
export const DEFAULT_COLLECTION_NAME = 'test_coll';
25+
export const VECTORIZE_COLLECTION_NAME = 'vectorize_coll';
2526
export const EPHEMERAL_COLLECTION_NAME = 'temp_coll';
2627
export const OTHER_NAMESPACE = 'other_keyspace';
28+
export const TEMP_DB_NAME = 'astra-test-db-plus-random-name-1284'
2729

28-
let collCreated = false;
30+
let collsSetup = false;
2931

3032
export const USE_HTTP2 = !process.env.ASTRA_USE_HTTP1;
3133

@@ -37,19 +39,23 @@ export const initTestObjects = async (ctx: Context, preferHttp2 = USE_HTTP2): Pr
3739
const client = new DataAPIClient(process.env.APPLICATION_TOKEN!, { httpOptions: { preferHttp2 } });
3840
const db = client.db(process.env.ASTRA_URI!);
3941

40-
const coll = (!collCreated)
41-
? await (async () => {
42-
await db.dropCollection(EPHEMERAL_COLLECTION_NAME);
43-
await db.dropCollection(EPHEMERAL_COLLECTION_NAME, { namespace: OTHER_NAMESPACE });
44-
await db.createCollection(DEFAULT_COLLECTION_NAME, { vector: { dimension: 5, metric: 'cosine' }, checkExists: false, namespace: OTHER_NAMESPACE });
45-
return await db.createCollection(DEFAULT_COLLECTION_NAME, { vector: { dimension: 5, metric: 'cosine' }, checkExists: false })
46-
})()
47-
: db.collection(DEFAULT_COLLECTION_NAME);
42+
if (!collsSetup) {
43+
if (process.env.ASTRA_RUN_VECTORIZE_TESTS) {
44+
await db.createCollection(VECTORIZE_COLLECTION_NAME, { vector: { service: { modelName: 'NV-Embed-QA', provider: 'nvidia' } }, checkExists: false });
45+
}
4846

49-
collCreated = true;
50-
await coll.deleteAll();
47+
await db.dropCollection(EPHEMERAL_COLLECTION_NAME);
48+
await db.dropCollection(EPHEMERAL_COLLECTION_NAME, { namespace: OTHER_NAMESPACE });
49+
await db.createCollection(DEFAULT_COLLECTION_NAME, { vector: { dimension: 5, metric: 'cosine' }, checkExists: false, namespace: OTHER_NAMESPACE });
50+
await db.createCollection(DEFAULT_COLLECTION_NAME, { vector: { dimension: 5, metric: 'cosine' }, checkExists: false });
5151

52-
return [client, db, coll];
52+
collsSetup = true;
53+
}
54+
55+
const collection = db.collection(DEFAULT_COLLECTION_NAME);
56+
await collection.deleteAll();
57+
58+
return [client, db, collection];
5359
};
5460

5561
export const initCollectionWithFailingClient = async (ctx: Context) => {

tests/integration/data-api/collection/insert-many.test.ts

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,21 @@
99
// limitations under the License.
1010
// noinspection DuplicatedCode
1111

12-
import { Collection, DataAPIError, DataAPITimeoutError, InsertManyError, ObjectId, UUID } from '@/src/data-api';
13-
import { assertTestsEnabled, initCollectionWithFailingClient, initTestObjects } from '@/tests/fixtures';
12+
import { Collection, DataAPIError, DataAPITimeoutError, Db, InsertManyError, ObjectId, UUID } from '@/src/data-api';
13+
import {
14+
assertTestsEnabled,
15+
initCollectionWithFailingClient,
16+
initTestObjects,
17+
VECTORIZE_COLLECTION_NAME,
18+
} from '@/tests/fixtures';
1419
import assert from 'assert';
1520

1621
describe('integration.data-api.collection.insert-many', () => {
1722
let collection: Collection;
23+
let db: Db;
1824

1925
before(async function () {
20-
[, , collection] = await initTestObjects(this);
26+
[, db, collection] = await initTestObjects(this);
2127
});
2228

2329
beforeEach(async () => {
@@ -225,6 +231,10 @@ describe('integration.data-api.collection.insert-many', () => {
225231

226232
it('[vectorize] should insertMany with vectorize', async function () {
227233
assertTestsEnabled(this, 'VECTORIZE');
234+
235+
const collection = db.collection(VECTORIZE_COLLECTION_NAME);
236+
await collection.deleteAll();
237+
228238
const res = await collection.insertMany([
229239
{ name: 'Arch Enemy' },
230240
{ name: 'Equilibrium' },

tests/integration/data-api/collection/insert-one.test.ts

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,16 @@
99
// limitations under the License.
1010
// noinspection DuplicatedCode
1111

12-
import { Collection, DataAPIResponseError, ObjectId, UUID } from '@/src/data-api';
13-
import { assertTestsEnabled, initTestObjects } from '@/tests/fixtures';
12+
import { Collection, DataAPIResponseError, Db, ObjectId, UUID } from '@/src/data-api';
13+
import { assertTestsEnabled, initTestObjects, VECTORIZE_COLLECTION_NAME } from '@/tests/fixtures';
1414
import assert from 'assert';
1515

1616
describe('integration.data-api.collection.insert-one', () => {
1717
let collection: Collection;
18+
let db: Db;
1819

1920
before(async function () {
20-
[, , collection] = await initTestObjects(this);
21+
[, db, collection] = await initTestObjects(this);
2122
});
2223

2324
beforeEach(async () => {
@@ -147,8 +148,13 @@ describe('integration.data-api.collection.insert-one', () => {
147148

148149
it('[vectorize] should insertOne with vectorize', async function () {
149150
assertTestsEnabled(this, 'VECTORIZE');
151+
152+
const collection = db.collection(VECTORIZE_COLLECTION_NAME);
153+
await collection.deleteAll();
154+
150155
const res = await collection.insertOne({ name: 'Arch Enemy' }, { vectorize: 'Arch Enemy is a Swedish melodic death metal band, originally a supergroup from Halmstad, formed in 1995.' });
151156
assert.ok(res);
157+
152158
const found = await collection.findOne({ name: 'Arch Enemy' });
153159
assert.deepStrictEqual(found?.$vectorize, 'Arch Enemy is a Swedish melodic death metal band, originally a supergroup from Halmstad, formed in 1995.');
154160
});

tests/integration/devops/lifecycle.test.ts

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
// limitations under the License.
1414
// noinspection DuplicatedCode
1515

16-
import { assertTestsEnabled, initTestObjects } from '@/tests/fixtures';
16+
import { assertTestsEnabled, initTestObjects, TEMP_DB_NAME } from '@/tests/fixtures';
1717
import { DataAPIClient } from '@/src/client';
1818
import assert from 'assert';
1919
import { DevOpsAPIResponseError } from '@/src/devops';
@@ -29,20 +29,18 @@ describe('integration.devops.lifecycle', async () => {
2929
[client] = await initTestObjects(this);
3030

3131
for (const db of await client.admin().listDatabases()) {
32-
if (db.info.name === 'astra-test-db' && db.status !== 'TERMINATING') {
32+
if (db.info.name === TEMP_DB_NAME && db.status !== 'TERMINATING') {
3333
void client.admin().dropDatabase(db.id);
3434
}
3535
}
3636
});
3737

38-
// https://62ef0e85-1530-4d6a-ab60-d3dcd0b8162a-us-east1.apps.astra.datastax.com
39-
4038
it('[admin] works', async () => {
4139
try {
4240
const admin = client.admin();
4341

4442
const asyncDbAdmin = await admin.createDatabase({
45-
name: 'astra-test-db',
43+
name: TEMP_DB_NAME,
4644
cloudProvider: 'GCP',
4745
region: 'us-east1',
4846
namespace: 'my_namespace',
@@ -60,7 +58,7 @@ describe('integration.devops.lifecycle', async () => {
6058
{
6159
const dbInfo1 = await asyncDbAdmin.info();
6260
assert.ok(['PENDING', 'INITIALIZING'].includes(dbInfo1.status));
63-
assert.strictEqual(dbInfo1.info.name, 'astra-test-db');
61+
assert.strictEqual(dbInfo1.info.name, TEMP_DB_NAME);
6462
assert.strictEqual(dbInfo1.info.cloudProvider, 'GCP');
6563
assert.strictEqual(dbInfo1.info.region, 'us-east1');
6664
assert.strictEqual(dbInfo1.info.keyspace, 'my_namespace');
@@ -106,7 +104,7 @@ describe('integration.devops.lifecycle', async () => {
106104
}
107105

108106
const syncDbAdmin = await monitoringAdmin.createDatabase({
109-
name: 'astra-test-db',
107+
name: TEMP_DB_NAME,
110108
cloudProvider: 'GCP',
111109
region: 'us-east1',
112110
});
@@ -127,7 +125,7 @@ describe('integration.devops.lifecycle', async () => {
127125

128126
{
129127
const dbInfo = await syncDb.info();
130-
assert.strictEqual(dbInfo.name, 'astra-test-db');
128+
assert.strictEqual(dbInfo.name, TEMP_DB_NAME);
131129
assert.strictEqual(dbInfo.cloudProvider, 'GCP');
132130
assert.strictEqual(dbInfo.region, 'us-east1');
133131
assert.strictEqual(dbInfo.keyspace, DEFAULT_NAMESPACE);
@@ -146,7 +144,7 @@ describe('integration.devops.lifecycle', async () => {
146144
for (const [dbAdmin, db, dbType] of [[syncDbAdmin, syncDb, 'sync'], [asyncDbAdmin, asyncDb, 'async']] as const) {
147145
const dbInfo = await dbAdmin.info();
148146
assert.strictEqual(dbInfo.status, 'ACTIVE');
149-
assert.strictEqual(dbInfo.info.name, 'astra-test-db');
147+
assert.strictEqual(dbInfo.info.name, TEMP_DB_NAME);
150148
assert.strictEqual(dbInfo.info.cloudProvider, 'GCP');
151149
assert.strictEqual(dbInfo.info.region, 'us-east1');
152150
assert.strictEqual(dbInfo.info.keyspace, db.namespace);

tests/integration/misc/code-samples.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ describe('integration.misc.code-samples', () => {
9696

9797
assert.ok(john?._id instanceof UUID);
9898
assert.strictEqual(jane?.name, 'Jane');
99-
assert.strictEqual(jane?._id.toString(), '016b1cac-14ce-660e-8974-026c927b9b91');
99+
assert.strictEqual(jane?._id?.toString(), '016b1cac-14ce-660e-8974-026c927b9b91');
100100

101101
assert.ok(jane?._id instanceof UUID);
102102
assert.ok(jane._id.equals(john?.friendId));

0 commit comments

Comments
 (0)