Verified Commit 768b142e authored by Tristan Read's avatar Tristan Read 💬 Committed by GitLab
Browse files

fix: support ee suffix in version check

parent 46eb4c76
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -62,12 +62,18 @@ describe('GitLabChatRecord', () => {
describe('detectType', () => {
  it.each`
    message           | version        | expectedType
    ${'/reset'}       | ${'17.5.0-ee'} | ${'newConversation'}
    ${'/reset'}       | ${'17.5.0'}    | ${'newConversation'}
    ${'/reset'}       | ${'17.4.0'}    | ${'newConversation'}
    ${'/clear'}       | ${'17.5.0-ee'} | ${'clearChat'}
    ${'/clear'}       | ${'17.5.0'}    | ${'clearChat'}
    ${'/clear'}       | ${'17.4.0'}    | ${'clearChat'}
    ${'/clean'}       | ${'17.6.0-ee'} | ${'general'}
    ${'/clean'}       | ${'17.5.0-ee'} | ${'general'}
    ${'/clean'}       | ${'17.5.0'}    | ${'general'}
    ${'/clean'}       | ${'17.4.0-ee'} | ${'clearChat'}
    ${'/clean'}       | ${'17.4.0'}    | ${'clearChat'}
    ${'test message'} | ${'17.5.0-ee'} | ${'general'}
    ${'test message'} | ${'17.5.0'}    | ${'general'}
    ${'test message'} | ${'17.4.0'}    | ${'general'}
  `('returns $expectedType for $message on $version', ({ message, version, expectedType }) => {
+5 −2
Original line number Diff line number Diff line
import { v4 as uuidv4 } from 'uuid';
import { AIContextItem } from '@gitlab-org/gitlab-lsp';
import { gte } from 'semver';
import { coerce, gte } from 'semver';
import { log } from '../log';
import { buildCurrentContext, GitLabChatRecordContext } from './gitlab_chat_record_context';
import { SPECIAL_MESSAGES } from './constants';
@@ -33,10 +33,13 @@ type GitLabChatRecordAttributes = {
};

export function detectType(content: string, version: string): ChatRecordType {
  const parsedVersion = coerce(version);
  const usesGeneralTypeForCleanMessage = Boolean(parsedVersion && gte(parsedVersion, '17.5.0'));

  if (content === SPECIAL_MESSAGES.RESET) {
    return 'newConversation';
  }
  if (content === SPECIAL_MESSAGES.CLEAN && gte(version, '17.5.0')) {
  if (content === SPECIAL_MESSAGES.CLEAN && usesGeneralTypeForCleanMessage) {
    return 'general';
  }
  if (content === SPECIAL_MESSAGES.CLEAN || content === SPECIAL_MESSAGES.CLEAR) {