mirror of
https://github.com/chanzuckerberg/cellxgene.git
synced 2026-10-02 12:38:12 +08:00
__test: create geneset
This commit is contained in:
@@ -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");
|
||||
|
||||
|
||||
@@ -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" },
|
||||
|
||||
@@ -130,7 +130,6 @@ class Gene extends React.Component {
|
||||
style={{ fontWeight: 700, marginRight: 2 }}
|
||||
icon={<Icon icon="trash" iconSize={10} />}
|
||||
/>
|
||||
)
|
||||
<AnchorButton
|
||||
minimal
|
||||
small
|
||||
|
||||
@@ -133,7 +133,7 @@ class GeneSet extends React.Component {
|
||||
style={{
|
||||
maxWidth: globals.leftSidebarWidth - genesetNameLengthVisible,
|
||||
}}
|
||||
data-testid={`${setName}:geneset-label`}
|
||||
data-testid={`${setName}:geneset-name`}
|
||||
>
|
||||
{setName}
|
||||
</span>
|
||||
|
||||
@@ -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 {
|
||||
<LabelInput
|
||||
onChange={this.handleChange}
|
||||
inputProps={{
|
||||
"data-testid": "create-geneset-modal",
|
||||
"data-testid": "create-geneset-input",
|
||||
leftIcon: "manually-entered-data",
|
||||
intent: "none",
|
||||
autoFocus: true,
|
||||
@@ -183,7 +183,7 @@ class CreateGenesetDialogue extends React.PureComponent {
|
||||
</Button>
|
||||
</Tooltip2>
|
||||
<Button
|
||||
data-testid={`${metadataField}:submit-geneset`}
|
||||
data-testid="submit-geneset"
|
||||
onClick={this.createGeneset}
|
||||
disabled={
|
||||
!genesetName || this.validate(genesetName, genesets)
|
||||
|
||||
@@ -55,7 +55,7 @@ class GenesetMenus extends React.PureComponent {
|
||||
});
|
||||
};
|
||||
|
||||
handleDeleteCategory = () => {
|
||||
handleDeleteGeneset = () => {
|
||||
const { dispatch, geneset } = this.props;
|
||||
dispatch(actions.genesetDelete(geneset));
|
||||
};
|
||||
@@ -101,9 +101,9 @@ class GenesetMenus extends React.PureComponent {
|
||||
<MenuItem
|
||||
icon="trash"
|
||||
intent="danger"
|
||||
data-testclass="handleDeleteCategory"
|
||||
data-testid={`${geneset}:delete-category`}
|
||||
onClick={this.handleDeleteCategory}
|
||||
data-testclass="handleDeleteGeneset"
|
||||
data-testid={`${geneset}:delete-geneset`}
|
||||
onClick={this.handleDeleteGeneset}
|
||||
text="Delete this gene set (destructive, will remove set and collection of genes)"
|
||||
/>
|
||||
</Menu>
|
||||
|
||||
Reference in New Issue
Block a user