Skip to content
Snippets Groups Projects
test-controller.interfaces.ts 3.64 KiB
Newer Older
  • Learn to ignore specific revisions
  • // used everywhere
    export interface TaggedString {
        tag: string;
        value: string;
    
    export interface UnitStateData {
    
    mechtelm's avatar
    mechtelm committed
        unitDbKey: string;
    
        dataPartsAllString: string;
        unitStateDataType: string;
    
    export interface KeyValuePairString {
      [K: string]: string;
    
    export enum WindowFocusState {
      PLAYER = 'PLAYER',
      HOST = 'HOST',
      UNKNOWN = 'UNKNOWN'
    }
    
    // testcontroller restrictions +++++++++++++++++++++++++++++++++++
    
    export interface StartLockData {
    
    mechtelm's avatar
    mechtelm committed
        title: string;
    
    mechtelm's avatar
    mechtelm committed
        prompt: string;
    
    mechtelm's avatar
    mechtelm committed
        codes: CodeInputData[];
    
    export interface CodeInputData {
    
    mechtelm's avatar
    mechtelm committed
        testletId: string;
    
        prompt: string;
        code: string;
        value: string;
    }
    
    // for backend ++++++++++++++++++++++++++++++++++++++++++++++++++++++
    export interface KeyValuePair {
        [K: string]: string;
    }
    
    
    export interface UnitData {
        xml: string;
        restorepoint: string;
    
    mechtelm's avatar
    mechtelm committed
        laststate: KeyValuePair[];
    
    mechtelm's avatar
    mechtelm committed
    export interface TestData {
    
      xml: string;
    
    mechtelm's avatar
    mechtelm committed
      mode: string;
    
      laststate: KeyValuePair[];
    }
    
    
    export enum TestStatus {
    
    paf's avatar
    paf committed
      WAITING_LOAD_COMPLETE = 'WAITING_LOAD_COMPLETE',
    
    paf's avatar
    paf committed
      WAITING_LOAD_START = 'WAITING_LOAD_START',
      RUNNING = 'RUNNING',
    
    paf's avatar
    paf committed
      TERMINATED = 'TERMINATED',
      PAUSED = 'PAUSED',
      ERROR = 'ERROR'
    
    }
    
    export interface UnitMenuButtonData {
      sequenceId: number;
      label: string;
      isCurrent: boolean;
    
      isDisabled: boolean;
    
    paf's avatar
    paf committed
      testletMarker: string;
    
    // for testcontroller service ++++++++++++++++++++++++++++++++++++++++
    
    export interface UnitLogData {
        bookletDbId: number;
        unitDbKey: string;
        timestamp: number;
        entry: string;
    
    mechtelm's avatar
    mechtelm committed
    export enum LastStateKey {
    
    mechtelm's avatar
    mechtelm committed
        LASTUNIT = 'LASTUNIT',
    
        MAXTIMELEFT = 'MAXTIMELEFT',
        FOCUS = 'FOCUS'
    
    mechtelm's avatar
    mechtelm committed
    }
    
    
    export interface UnitStatus {
        PRESENTATIONCOMPLETE?: string;
        RESPONSESCOMPLETE?: string;
    
        PAGE_NR?: number;
        PAGE_NAME?: string;
        PAGES_COUNT?: number;
    
    mechtelm's avatar
    mechtelm committed
    export enum LogEntryKey {
    
    mechtelm's avatar
    mechtelm committed
        UNITENTER = 'UNITENTER',
    
    mechtelm's avatar
    mechtelm committed
        UNITTRYLEAVE = 'UNITTRYLEAVE',
    
    mechtelm's avatar
    mechtelm committed
        BOOKLETLOADSTART = 'BOOKLETLOADSTART',
        BOOKLETLOADCOMPLETE = 'BOOKLETLOADCOMPLETE',
        PAGENAVIGATIONSTART = 'PAGENAVIGATIONSTART',
        PAGENAVIGATIONCOMPLETE = 'PAGENAVIGATIONCOMPLETE',
        PRESENTATIONCOMPLETE = 'PRESENTATIONCOMPLETE',
        RESPONSESCOMPLETE = 'RESPONSESCOMPLETE'
    }
    
    
    mechtelm's avatar
    mechtelm committed
    export enum MaxTimerDataType {
    
    mechtelm's avatar
    mechtelm committed
        STARTED = 'STARTED',
    
    mechtelm's avatar
    mechtelm committed
        STEP = 'STEP',
        CANCELLED = 'CANCELLED',
    
    mechtelm's avatar
    mechtelm committed
        INTERRUPTED = 'INTERRUPTED',
    
    mechtelm's avatar
    mechtelm committed
        ENDED = 'ENDED'
    
    mechtelm's avatar
    mechtelm committed
    }
    
    
    export interface UnitNaviButtonData {
      sequenceId: number;
      disabled: boolean;
    
      shortLabel: string;
      longLabel: string;
      testletLabel: string;
    
      isCurrent: boolean;
    }
    
    
    // for unithost ++++++++++++++++++++++++++++++++++++++++++++++++++++++
    
    export interface PageData {
        index: number;
        id: string;
    
    mechtelm's avatar
    mechtelm committed
        type: '#next' | '#previous' | '#goto';
    
        disabled: boolean;
    }
    
    mechtelm's avatar
    mechtelm committed
    
    export interface ReviewDialogData {
      loginname: string;
      bookletname: string;
      unitDbKey: string;
      unitTitle: string;
    }
    
    mechtelm's avatar
    mechtelm committed
    
    export enum NoUnitFlag {
    
    paf's avatar
    paf committed
      END = 'end',
      ERROR = 'error'
    
    mechtelm's avatar
    mechtelm committed
    }
    
    export interface KeyValuePairNumber {
      [K: string]: number;
    }
    
    paf's avatar
    paf committed
      NEXT = '#next',
      ERROR = '#error',
      PREVIOUS = '#previous',
      FIRST = '#first',
      LAST = '#last',
      END = '#end',
      MENU = '#menu',
      PAUSE = '#pause'
    
    
    
    export const commandKeywords = [
        'pause',
        'goto',
        'terminate',
    
    ];
    export type CommandKeyword = (typeof commandKeywords)[number];
    export function isKnownCommand (keyword: string): keyword is CommandKeyword {
        return (commandKeywords as readonly string[]).includes(keyword);
    }
    
    export interface Command {
        keyword: CommandKeyword;
    
    paf's avatar
    paf committed
        id: string; // a unique id for each command, to make sure each one get only performed once (even in polling mode)
    
        arguments: string[];
    }