All files / src/utils suggestion-constants.js

100% Statements 21/21
100% Branches 0/0
100% Functions 0/0
100% Lines 21/21

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82          82x                     82x                                             82x 82x 82x 82x   82x 82x 82x 82x 82x 82x 82x 82x 82x 82x 82x 82x 82x 82x   82x                                            
/**
 * Constants for the suggestions feature.
 * Centralised validation rules, tag lists, and configuration.
 */
 
const VALID_TAGS = [
  'compliance',
  'platform',
  'revenue',
  'social',
  'quality-of-life',
  'entertainment',
  'support',
  'website',
];
 
const VALID_LANGUAGES = [
  'en',
  'ar',
  'de',
  'es',
  'fr',
  'hi',
  'id',
  'it',
  'ja',
  'ko',
  'nl',
  'pl',
  'pt',
  'ru',
  'sv',
  'th',
  'tr',
  'uk',
  'vi',
  'zh',
];
 
const VALID_STATUSES = ['pending', 'accepted', 'planned', 'completed', 'rejected'];
const PUBLIC_STATUSES = ['accepted', 'planned', 'completed', 'rejected'];
const VOTABLE_STATUSES = ['accepted'];
const COMMENTABLE_STATUSES = ['accepted'];
 
const MAX_TITLE_LENGTH = 80;
const MAX_DESCRIPTION_LENGTH = 5000;
const MAX_COMMENT_LENGTH = 2000;
const MAX_VOTE_REASON_LENGTH = 500;
const MAX_REJECT_REASON_LENGTH = 2000;
const MAX_TAGS_PER_SUGGESTION = 5;
const MAX_PENDING_PER_USER = 10;
const MAX_PAGE_SIZE = 50;
const DEFAULT_PAGE_SIZE = 20;
const SEARCH_MIN_LENGTH = 2;
const SEARCH_PAGE_SIZE = 3;
const MAX_NOTIFICATIONS_PER_USER = 200;
const NOTIFICATION_TTL_DAYS = 90;
const SIMILARITY_THRESHOLD = 0.7;
 
module.exports = {
  VALID_TAGS,
  VALID_LANGUAGES,
  VALID_STATUSES,
  PUBLIC_STATUSES,
  VOTABLE_STATUSES,
  COMMENTABLE_STATUSES,
  MAX_TITLE_LENGTH,
  MAX_DESCRIPTION_LENGTH,
  MAX_COMMENT_LENGTH,
  MAX_VOTE_REASON_LENGTH,
  MAX_REJECT_REASON_LENGTH,
  MAX_TAGS_PER_SUGGESTION,
  MAX_PENDING_PER_USER,
  MAX_PAGE_SIZE,
  DEFAULT_PAGE_SIZE,
  SEARCH_MIN_LENGTH,
  SEARCH_PAGE_SIZE,
  MAX_NOTIFICATIONS_PER_USER,
  NOTIFICATION_TTL_DAYS,
  SIMILARITY_THRESHOLD,
};