// Jest Snapshot v1, https://goo.gl/fbAQLP

exports[`QueryView matches snapshot 1`] = `
<div
  className="query-view app-view"
>
  <ColumnTree
    columnMetadataLoading={true}
    defaultSchema="druid"
    getParsedQuery={[Function]}
    onQueryChange={[Function]}
  />
  <t
    customClassName=""
    onDragEnd={null}
    onDragStart={null}
    onSecondaryPaneSizeChange={[Function]}
    percentage={true}
    primaryIndex={0}
    primaryMinSize={30}
    secondaryInitialSize={60}
    secondaryMinSize={30}
    vertical={true}
  >
    <div
      className="control-pane"
    >
      <QueryInput
        currentSchema="druid"
        onQueryStringChange={[Function]}
        queryString="test"
        runeMode={false}
      />
      <div
        className="query-control-bar"
      >
        <Memo(RunButton)
          loading={true}
          onEditContext={[Function]}
          onExplain={[Function]}
          onHistory={[Function]}
          onPrettier={[Function]}
          onQueryContextChange={[Function]}
          onRun={[Function]}
          queryContext={Object {}}
          runeMode={false}
        />
        <Blueprint3.Tooltip
          content="Automatically wrap the query with a limit to protect against queries with very large result sets."
          hoverCloseDelay={0}
          hoverOpenDelay={800}
          minimal={false}
          transitionDuration={100}
        >
          <Blueprint3.Switch
            checked={true}
            className="auto-limit"
            label="Auto limit"
            onChange={[Function]}
          />
        </Blueprint3.Tooltip>
        <Memo(LiveQueryModeSelector)
          autoLiveQueryModeShouldRun={true}
          liveQueryMode="auto"
          onLiveQueryModeChange={[Function]}
        />
        <Memo(QueryTimer) />
      </div>
    </div>
    <div
      className="output-pane"
    >
      <Memo(Loader)
        cancelText="Cancel query"
        onCancel={[Function]}
      />
    </div>
  </t>
</div>
`;

exports[`QueryView matches snapshot with query 1`] = `
<div
  className="query-view app-view"
>
  <ColumnTree
    columnMetadataLoading={true}
    defaultSchema="druid"
    getParsedQuery={[Function]}
    onQueryChange={[Function]}
  />
  <t
    customClassName=""
    onDragEnd={null}
    onDragStart={null}
    onSecondaryPaneSizeChange={[Function]}
    percentage={true}
    primaryIndex={0}
    primaryMinSize={30}
    secondaryInitialSize={60}
    secondaryMinSize={30}
    vertical={true}
  >
    <div
      className="control-pane"
    >
      <QueryInput
        currentSchema="druid"
        onQueryStringChange={[Function]}
        queryString="SELECT +3"
        runeMode={false}
      />
      <div
        className="query-control-bar"
      >
        <Memo(RunButton)
          loading={true}
          onEditContext={[Function]}
          onExplain={[Function]}
          onHistory={[Function]}
          onPrettier={[Function]}
          onQueryContextChange={[Function]}
          onRun={[Function]}
          queryContext={Object {}}
          runeMode={false}
        />
        <Blueprint3.Tooltip
          content="Automatically wrap the query with a limit to protect against queries with very large result sets."
          hoverCloseDelay={0}
          hoverOpenDelay={800}
          minimal={false}
          transitionDuration={100}
        >
          <Blueprint3.Switch
            checked={true}
            className="auto-limit"
            label="Auto limit"
            onChange={[Function]}
          />
        </Blueprint3.Tooltip>
        <Memo(LiveQueryModeSelector)
          autoLiveQueryModeShouldRun={true}
          liveQueryMode="auto"
          onLiveQueryModeChange={[Function]}
        />
        <Memo(QueryTimer) />
      </div>
    </div>
    <div
      className="output-pane"
    >
      <Memo(Loader)
        cancelText="Cancel query"
        onCancel={[Function]}
      />
    </div>
  </t>
</div>
`;
