diff --git a/client/__tests__/e2e/cellxgeneActions.js b/client/__tests__/e2e/cellxgeneActions.js
index ba1f4f08..23821102 100644
--- a/client/__tests__/e2e/cellxgeneActions.js
+++ b/client/__tests__/e2e/cellxgeneActions.js
@@ -176,6 +176,46 @@ export async function createCategory(categoryName) {
await clickOn("submit-category");
}
+export async function createGeneset(genesetName) {
+ await clickOnUntil("open-create-geneset-dialog", async () => {
+ await expect(page).toMatchElement(getTestId("create-geneset-input"));
+ });
+
+ await typeInto("create-geneset-input", genesetName);
+ await clickOn("submit-geneset");
+ await waitByClass("autosave-complete");
+}
+
+export async function deleteGeneset(genesetName) {
+ const targetId = `${genesetName}:delete-category`;
+
+ await clickOnUntil(`${genesetName}:see-actions`, async () => {
+ await expect(page).toMatchElement(getTestId(targetId));
+ });
+
+ await clickOn(targetId);
+
+ await assertGenesetDoesNotExist(genesetName);
+ await waitByClass("autosave-complete");
+}
+
+export async function assertGenesetDoesNotExist(genesetName) {
+ const result = await isElementPresent(
+ getTestId(`${genesetName}:geneset-name`)
+ );
+ await expect(result).toBe(false);
+}
+
+export async function assertGenesetExists(genesetName) {
+ const handle = await waitByID(`${genesetName}:geneset-name`);
+
+ const result = await handle.evaluate((node) => {
+ return node.getAttribute("aria-label");
+ });
+
+ return expect(result).toBe(genesetName);
+}
+
export async function duplicateCategory(categoryName) {
await clickOn("open-annotation-dialog");
diff --git a/client/__tests__/e2e/e2eAnnotations.test.js b/client/__tests__/e2e/e2eAnnotations.test.js
index e998da6b..e9b02ef1 100644
--- a/client/__tests__/e2e/e2eAnnotations.test.js
+++ b/client/__tests__/e2e/e2eAnnotations.test.js
@@ -27,12 +27,17 @@ import {
renameLabel,
subset,
duplicateCategory,
+ createGeneset,
+ deleteGeneset,
+ assertGenesetExists,
+ assertGenesetDoesNotExist,
} from "./cellxgeneActions";
const data = datasets[DATASET];
const perTestCategoryName = "TEST-CATEGORY";
const perTestLabelName = "TEST-LABEL";
+const perTestGenesetName = "TEST-GENESET";
async function setup(config) {
await goToPage(appUrlBase);
@@ -40,6 +45,7 @@ async function setup(config) {
// setup the test fixtures
await createCategory(perTestCategoryName);
await createLabel(perTestCategoryName, perTestLabelName);
+ await createGeneset(perTestGenesetName);
if (config.withSubset) {
await subset({ x1: 0.1, y1: 0.1, x2: 0.8, y2: 0.8 });
@@ -48,6 +54,32 @@ async function setup(config) {
await waitByClass("autosave-complete");
}
+describe("geneSET crud operations and interactions", (config = {}) => {
+ // test("static pre existing genesets load from csv, expand", async () => {});
+ // test("color by geneset", async () => {});
+ // test("brush on geneset mean", async () => {});
+ test("create a new geneset", async () => {
+ await setup(config);
+
+ const genesetName = `test-geneset-foo-123`;
+ await assertGenesetDoesNotExist(genesetName);
+ await createGeneset(genesetName);
+ /* note: as of June 2021, the aria label is in the truncate component which clones the element */
+ await assertGenesetExists(genesetName);
+ });
+ // test("edit geneset description", async () => {});
+ test("delete a geneset", async () => {
+ await deleteGeneset(perTestGenesetName);
+ });
+});
+
+// describe("GENE crud operations and interactions", () => {
+// test("add a gene to geneset", async () => {});
+// test("color by gene", async () => {});
+// test("expand gene and brush", async () => {});
+// test("delete gene from geneset", async () => {});
+// });
+
describe.each([
{ withSubset: true, tag: "subset" },
{ withSubset: false, tag: "whole" },
diff --git a/client/src/components/geneExpression/gene.js b/client/src/components/geneExpression/gene.js
index 5dcab06a..4078e729 100644
--- a/client/src/components/geneExpression/gene.js
+++ b/client/src/components/geneExpression/gene.js
@@ -130,7 +130,6 @@ class Gene extends React.Component {
style={{ fontWeight: 700, marginRight: 2 }}
icon={}
/>
- )
{setName}
diff --git a/client/src/components/geneExpression/menus/createGenesetDialogue.js b/client/src/components/geneExpression/menus/createGenesetDialogue.js
index 5d7b6fca..c310c590 100644
--- a/client/src/components/geneExpression/menus/createGenesetDialogue.js
+++ b/client/src/components/geneExpression/menus/createGenesetDialogue.js
@@ -105,7 +105,7 @@ class CreateGenesetDialogue extends React.PureComponent {
render() {
const { genesetName } = this.state;
- const { metadataField, genesetsUI, genesets } = this.props;
+ const { genesetsUI, genesets } = this.props;
return (
<>
@@ -126,7 +126,7 @@ class CreateGenesetDialogue extends React.PureComponent {