LCOV - code coverage report
Current view: top level - lib/msc_extensions/msc_3381_polls - poll_room_extension.dart (source / functions) Coverage Total Hit
Test: merged.info Lines: 90.0 % 10 9
Test Date: 2025-01-14 12:37:39 Functions: - 0 0

            Line data    Source code
       1              : import 'package:matrix/matrix.dart';
       2              : import 'package:matrix/msc_extensions/msc_3381_polls/models/poll_event_content.dart';
       3              : 
       4              : extension PollRoomExtension on Room {
       5              :   static const String mTextJsonKey = 'org.matrix.msc1767.text';
       6              :   static const String startType = 'org.matrix.msc3381.poll.start';
       7              : 
       8            2 :   Future<String?> startPoll({
       9              :     required String question,
      10              :     required List<PollAnswer> answers,
      11              :     String? body,
      12              :     PollKind kind = PollKind.undisclosed,
      13              :     int maxSelections = 1,
      14              :     String? txid,
      15              :   }) async {
      16            4 :     if (answers.length > 20) {
      17            0 :       throw Exception('Client must not set more than 20 answers in a poll');
      18              :     }
      19              : 
      20              :     if (body == null) {
      21              :       body = question;
      22            6 :       for (var i = 0; i < answers.length; i++) {
      23            6 :         body = '$body\n$i. ${answers[i].mText}';
      24              :       }
      25              :     }
      26              : 
      27            2 :     final newPollEvent = PollEventContent(
      28              :       mText: body!,
      29            2 :       pollStartContent: PollStartContent(
      30              :         kind: kind,
      31              :         maxSelections: maxSelections,
      32            2 :         question: PollQuestion(mText: question),
      33              :         answers: answers,
      34              :       ),
      35              :     );
      36              : 
      37            2 :     return sendEvent(
      38            2 :       newPollEvent.toJson(),
      39              :       type: startType,
      40              :       txid: txid,
      41              :     );
      42              :   }
      43              : }
        

Generated by: LCOV version 2.0-1