[
  {
    "namePrefix": "should suggest keywords",
    "beforeCursor": "ALTER ",
    "afterCursor": "",
    "containsKeywords": ["VIEW"],
    "expectedResult": {
      "lowerCase": false
    }
  },
  {
    "namePrefix": "should suggest views and databases",
    "beforeCursor": "ALTER VIEW ",
    "afterCursor": "",
    "expectedResult": {
      "lowerCase": false,
      "suggestTables": {
        "onlyViews": true
      },
      "suggestDatabases": {
        "appendDot": true
      }
    }
  },
  {
    "namePrefix": "should suggest views",
    "beforeCursor": "ALTER VIEW foo.",
    "afterCursor": "",
    "expectedResult": {
      "lowerCase": false,
      "suggestTables": {
        "onlyViews": true,
        "identifierChain": [
          {
            "name": "foo"
          }
        ]
      }
    }
  },
  {
    "namePrefix": "should suggest keywords",
    "beforeCursor": "ALTER VIEW foo ",
    "afterCursor": "",
    "containsKeywords": ["SET TBLPROPERTIES"],
    "expectedResult": {
      "lowerCase": false
    }
  },
  {
    "namePrefix": "should suggest keywords",
    "beforeCursor": "ALTER VIEW foo.bar ",
    "afterCursor": "",
    "containsKeywords": ["SET TBLPROPERTIES"],
    "expectedResult": {
      "lowerCase": false
    }
  },
  {
    "namePrefix": "should suggest keywords",
    "beforeCursor": "ALTER VIEW foo ",
    "afterCursor": "",
    "containsKeywords": ["RENAME TO"],
    "expectedResult": {
      "lowerCase": false
    }
  },
  {
    "namePrefix": "should suggest keywords",
    "beforeCursor": "ALTER VIEW foo RENAME ",
    "afterCursor": "",
    "containsKeywords": ["TO"],
    "expectedResult": {
      "lowerCase": false
    }
  },
  {
    "namePrefix": "should suggest views and databases",
    "beforeCursor": "ALTER VIEW ",
    "afterCursor": " RENAME TO bar",
    "expectedResult": {
      "lowerCase": false,
      "suggestTables": {
        "onlyViews": true
      },
      "suggestDatabases": {
        "appendDot": true
      }
    }
  },
  {
    "namePrefix": "should suggest tables",
    "beforeCursor": "ALTER VIEW foo.",
    "afterCursor": " RENAME TO bar",
    "expectedResult": {
      "lowerCase": false,
      "suggestTables": {
        "onlyViews": true,
        "identifierChain": [
          {
            "name": "foo"
          }
        ]
      }
    }
  },
  {
    "namePrefix": "should suggest keywords",
    "beforeCursor": "ALTER VIEW bar ",
    "afterCursor": "",
    "containsKeywords": ["SET TBLPROPERTIES", "UNSET TBLPROPERTIES"],
    "expectedResult": {
      "lowerCase": false
    }
  },
  {
    "namePrefix": "should suggest keywords",
    "beforeCursor": "ALTER VIEW bar SET ",
    "afterCursor": "",
    "containsKeywords": ["TBLPROPERTIES"],
    "expectedResult": {
      "lowerCase": false
    }
  },
  {
    "namePrefix": "should suggest keywords",
    "beforeCursor": "ALTER VIEW bar UNSET ",
    "afterCursor": "",
    "containsKeywords": ["TBLPROPERTIES"],
    "expectedResult": {
      "lowerCase": false
    }
  },
  {
    "namePrefix": "should suggest keywords",
    "beforeCursor": "ALTER VIEW bar UNSET TBLPROPERTIES ",
    "afterCursor": "",
    "expectedResult": {
      "lowerCase": false,
      "suggestKeywords": ["IF EXISTS"]
    }
  },
  {
    "namePrefix": "should suggest keywords",
    "beforeCursor": "ALTER VIEW bar UNSET TBLPROPERTIES IF ",
    "afterCursor": "",
    "expectedResult": {
      "lowerCase": false,
      "suggestKeywords": ["EXISTS"]
    }
  },
  {
    "namePrefix": "should suggest keywords",
    "beforeCursor": "ALTER VIEW bar ",
    "afterCursor": "",
    "containsKeywords": ["AS SELECT"],
    "expectedResult": {
      "lowerCase": false
    }
  },
  {
    "namePrefix": "should suggest keywords",
    "beforeCursor": "ALTER VIEW bar AS ",
    "afterCursor": "",
    "expectedResult": {
      "lowerCase": false,
      "suggestKeywords": ["SELECT"]
    }
  },
  {
    "namePrefix": "should suggest keywords",
    "beforeCursor": "ALTER VIEW bar AS SELECT ",
    "afterCursor": "",
    "containsKeywords": ["*"],
    "expectedResult": {
      "lowerCase": false,
      "suggestAggregateFunctions": {
        "tables": []
      },
      "suggestAnalyticFunctions": true,
      "suggestFunctions": {},
      "suggestColumns": {
        "source": "select",
        "tables": [
          {
            "identifierChain": [
              {
                "name": "bar"
              }
            ]
          }
        ]
      }
    }
  }
]
