import { describe, expect, it } from 'vitest';

import {
  CONDITION_REGEX_MAX_LENGTH,
  getConditionRegexError,
} from './conditionRegex';

describe('condition regex validation', () => {
  it('接受常用语法、锚点和安全内联标志', () => {
    expect(getConditionRegexError('(?i)^[a-z]+-\\d+$')).toBe('');
  });

  it('拒绝空值和超长表达式', () => {
    expect(getConditionRegexError('   ')).toBe('请输入正则表达式');
    expect(
      getConditionRegexError('a'.repeat(CONDITION_REGEX_MAX_LENGTH + 1)),
    ).toContain(String(CONDITION_REGEX_MAX_LENGTH));
  });

  it('不使用浏览器正则语法拦截服务端负责的语法校验', () => {
    expect(getConditionRegexError('VIP(?=用户)')).toBe('');
    expect(getConditionRegexError('(VIP)-\\1')).toBe('');
  });
});
