[
  {
    "namePrefix": "should not report errors",
    "beforeCursor": "CREATE OR REPLACE GLOBAL TEMPORARY VIEW IF NOT EXISTS foo.bar (id int) COMMENT 'bla' TBLPROPERTIES ('a' = 'b') AS SELECT * FROM bla; ",
    "afterCursor": "",
    "noErrors": true,
    "containsKeywords": ["SELECT"],
    "expectedResult": {
      "lowerCase": false
    }
  },
  {
    "namePrefix": "should suggest keywords",
    "beforeCursor": "CREATE ",
    "afterCursor": "",
    "containsKeywords": ["OR REPLACE", "GLOBAL TEMPORARY VIEW", "TEMPORARY VIEW", "VIEW"],
    "expectedResult": {
      "lowerCase": false
    }
  },
  {
    "namePrefix": "should suggest keywords",
    "beforeCursor": "CREATE OR REPLACE ",
    "afterCursor": "",
    "containsKeywords": ["GLOBAL TEMPORARY VIEW", "TEMPORARY VIEW", "VIEW"],
    "expectedResult": {
      "lowerCase": false
    }
  },
  {
    "namePrefix": "should suggest keywords",
    "beforeCursor": "CREATE OR REPLACE GLOBAL ",
    "afterCursor": "",
    "containsKeywords": ["TEMPORARY"],
    "expectedResult": {
      "lowerCase": false
    }
  },
  {
    "namePrefix": "should suggest keywords",
    "beforeCursor": "CREATE OR REPLACE GLOBAL TEMPORARY ",
    "afterCursor": "",
    "containsKeywords": ["VIEW"],
    "expectedResult": {
      "lowerCase": false
    }
  },
  {
    "namePrefix": "should suggest keywords",
    "beforeCursor": "CREATE OR REPLACE GLOBAL TEMPORARY VIEW ",
    "afterCursor": "",
    "expectedResult": {
      "lowerCase": false,
      "suggestKeywords": ["IF NOT EXISTS"],
      "suggestDatabases": { "appendDot": true }
    }
  },
  {
    "namePrefix": "should suggest keywords",
    "beforeCursor": "CREATE OR REPLACE GLOBAL TEMPORARY VIEW IF ",
    "afterCursor": "",
    "expectedResult": {
      "lowerCase": false,
      "suggestKeywords": ["NOT EXISTS"]
    }
  },
  {
    "namePrefix": "should suggest keywords",
    "beforeCursor": "CREATE OR REPLACE GLOBAL TEMPORARY VIEW IF NOT ",
    "afterCursor": "",
    "expectedResult": {
      "lowerCase": false,
      "suggestKeywords": ["EXISTS"]
    }
  },
  {
    "namePrefix": "should suggest keywords",
    "beforeCursor": "CREATE OR REPLACE GLOBAL TEMPORARY VIEW IF NOT EXISTS ",
    "afterCursor": "",
    "expectedResult": {
      "lowerCase": false,
      "suggestDatabases": { "appendDot": true }
    }
  },
  {
    "namePrefix": "should suggest keywords",
    "beforeCursor": "CREATE OR REPLACE GLOBAL TEMPORARY VIEW IF NOT EXISTS foo ",
    "afterCursor": "",
    "expectedResult": {
      "lowerCase": false,
      "suggestKeywords": ["COMMENT", "TBLPROPERTIES", "AS"]
    }
  },
  {
    "namePrefix": "should suggest keywords",
    "beforeCursor": "CREATE VIEW foo ",
    "afterCursor": "",
    "expectedResult": {
      "lowerCase": false,
      "suggestKeywords": ["COMMENT", "TBLPROPERTIES", "AS"]
    }
  },
  {
    "namePrefix": "should suggest keywords",
    "beforeCursor": "CREATE VIEW foo COMMENT 'bla' ",
    "afterCursor": "",
    "expectedResult": {
      "lowerCase": false,
      "suggestKeywords": ["TBLPROPERTIES", "AS"]
    }
  },
  {
    "namePrefix": "should suggest keywords",
    "beforeCursor": "CREATE VIEW foo COMMENT 'bla' TBLPROPERTIES ('a'='b') ",
    "afterCursor": "",
    "expectedResult": {
      "lowerCase": false,
      "suggestKeywords": ["AS"]
    }
  },
  {
    "namePrefix": "should suggest keywords",
    "beforeCursor": "CREATE VIEW foo COMMENT 'bla' TBLPROPERTIES ('a'='b') AS ",
    "afterCursor": "",
    "containsKeywords": ["SELECT"],
    "expectedResult": {
      "lowerCase": false
    }
  },
  {
    "namePrefix": "should suggest keywords",
    "beforeCursor": "CREATE OR REPLACE GLOBAL TEMPORARY VIEW ",
    "afterCursor": " foo COMMENT 'bla' TBLPROPERTIES ('a'='b') AS SELECT * FROM foo; ",
    "expectedResult": {
      "lowerCase": false,
      "suggestKeywords": ["IF NOT EXISTS"]
    }
  }
]
