Skip to content

Couchbase Module

Couchbase is a distributed document database with a powerful search engine and in-built operational and analytical capabilities. It brings the power of NoSQL to the edge and provides fast, efficient bidirectional synchronization of data between the edge and the cloud.

Install

npm install @testcontainers/couchbase --save-dev

Examples

const upsertAndGet = async (
  bucket: Bucket,
  key: string,
  value: Record<string, string>
): Promise<couchbase.GetResult> => {
  const coll = bucket.defaultCollection();
  await coll.upsert(key, value);

  return coll.get(key);
};
it("should connect and query using enterprise image", async () => {
  const bucketDefinition = new BucketDefinition("mybucket");
  const container = new CouchbaseContainer(COUCHBASE_IMAGE_ENTERPRISE).withBucket(bucketDefinition);

  startedTestContainer = await container.start();

  cluster = await couchbase.Cluster.connect(startedTestContainer.getConnectionString(), {
    username: startedTestContainer.getUsername(),
    password: startedTestContainer.getPassword(),
  });

  const bucket = cluster.bucket(bucketDefinition.getName());
  const result = await upsertAndGet(bucket, "testdoc", { foo: "bar" });

  expect(result.content).toEqual({ foo: "bar" });
});