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 {