import {type EntryStacktrace, EntryType} from 'sentry/types';

export function EventEntryStacktraceFixture(params = {}): EntryStacktrace {
  return {
    type: EntryType.STACKTRACE,
    data: {
      framesOmitted: null,
      hasSystemFrames: false,
      registers: null,
      frames: [
        {
          filename: 'raven/base.py',
          absPath: '/home/ubuntu/.virtualenvs/getsentry/src/raven/raven/base.py',
          module: 'raven.base',
          package: null,
          platform: null,
          instructionAddr: null,
          symbolAddr: null,
          function: 'build_msg',
          rawFunction: null,
          symbol: null,
          context: [
            [298, '                frames = stack'],
            [299, ''],
            [300, '            data.update({'],
            [301, "                'sentry.interfaces.Stacktrace': {"],
            [302, "                    'frames': get_stack_info(frames,"],
            [303, '                        transformer=self.transform)'],
            [304, '                },'],
            [305, '            })'],
            [306, ''],
            [307, "        if 'sentry.interfaces.Stacktrace' in data:"],
            [308, '            if self.include_paths:'],
          ],
          lineNo: 303,
          colNo: null,
          inApp: false,
          trust: null,
          vars: {
            "'culprit'": null,
            "'data'": {
              "'message'": "u'This is a test message generated using ``raven test``'",
              "'sentry.interfaces.Message'": {
                "'message'": "u'This is a test message generated using ``raven test``'",
                "'params'": [],
              },
            },
            "'date'": 'datetime.datetime(2013, 8, 13, 3, 8, 24, 880386)',
            "'event_id'": "'54a322436e1b47b88e239b78998ae742'",
            "'event_type'": "'raven.events.Message'",
            "'extra'": {
              "'go_deeper'": [['{"\'bar\'":["\'baz\'"],"\'foo\'":"\'bar\'"}']],
              "'loadavg'": [0.37255859375, 0.5341796875, 0.62939453125],
              "'user'": "'dcramer'",
            },
            "'frames'": '<generator object iter_stack_frames at 0x107bcc3c0>',
            "'handler'": '<raven.events.Message object at 0x107bd0890>',
            "'k'": "'sentry.interfaces.Message'",
            "'kwargs'": {
              "'level'": 20,
              "'message'": "'This is a test message generated using ``raven test``'",
            },
            "'public_key'": null,
            "'result'": {
              "'message'": "u'This is a test message generated using ``raven test``'",
              "'sentry.interfaces.Message'": {
                "'message'": "u'This is a test message generated using ``raven test``'",
                "'params'": [],
              },
            },
            "'self'": '<raven.base.Client object at 0x107bb8210>',
            "'stack'": true,
            "'tags'": null,
            "'time_spent'": null,
            "'v'": {
              "'message'": "u'This is a test message generated using ``raven test``'",
              "'params'": [],
            },
          },
          minGroupingLevel: 4,
        },
        {
          filename: 'raven/base.py',
          absPath: '/home/ubuntu/.virtualenvs/getsentry/src/raven/raven/base.py',
          module: 'raven.base',
          package: null,
          platform: null,
          instructionAddr: null,
          symbolAddr: null,
          function: 'capture',
          rawFunction: null,
          symbol: null,
          context: [
            [454, '        if not self.is_enabled():'],
            [455, '            return'],
            [456, ''],
            [457, '        data = self.build_msg('],
            [
              458,
              '            event_type, data, date, time_spent, extra, stack, tags=tags,',
            ],
            [459, '            **kwargs)'],
            [460, ''],
            [461, '        self.send(**data)'],
            [462, ''],
            [463, "        return (data.get('event_id'),)"],
            [464, ''],
          ],
          lineNo: 459,
          colNo: null,
          inApp: false,
          trust: null,
          vars: {
            "'data'": null,
            "'date'": null,
            "'event_type'": "'raven.events.Message'",
            "'extra'": {
              "'go_deeper'": [['{"\'bar\'":["\'baz\'"],"\'foo\'":"\'bar\'"}']],
              "'loadavg'": [0.37255859375, 0.5341796875, 0.62939453125],
              "'user'": "'dcramer'",
            },
            "'kwargs'": {
              "'level'": 20,
              "'message'": "'This is a test message generated using ``raven test``'",
            },
            "'self'": '<raven.base.Client object at 0x107bb8210>',
            "'stack'": true,
            "'tags'": null,
            "'time_spent'": null,
          },
          minGroupingLevel: 3,
        },
        {
          filename: 'raven/base.py',
          absPath: '/home/ubuntu/.virtualenvs/getsentry/src/raven/raven/base.py',
          module: 'raven.base',
          package: null,
          platform: null,
          instructionAddr: null,
          symbolAddr: null,
          function: 'captureMessage',
          rawFunction: null,
          symbol: null,
          context: [
            [572, '        """'],
            [573, '        Creates an event from ``message``.'],
            [574, ''],
            [575, "        >>> client.captureMessage('My event just happened!')"],
            [576, '        """'],
            [
              577,
              "        return self.capture('raven.events.Message', message=message, **kwargs)",
            ],
            [578, ''],
            [579, '    def captureException(self, exc_info=None, **kwargs):'],
            [580, '        """'],
            [581, '        Creates an event from an exception.'],
            [582, ''],
          ],
          lineNo: 577,
          colNo: null,
          inApp: false,
          trust: null,
          vars: {
            "'kwargs'": {
              "'data'": null,
              "'extra'": {
                "'go_deeper'": ['[{"\'bar\'":["\'baz\'"],"\'foo\'":"\'bar\'"}]'],
                "'loadavg'": [0.37255859375, 0.5341796875, 0.62939453125],
                "'user'": "'dcramer'",
              },
              "'level'": 20,
              "'stack'": true,
              "'tags'": null,
            },
            "'message'": "'This is a test message generated using ``raven test``'",
            "'self'": '<raven.base.Client object at 0x107bb8210>',
          },
          minGroupingLevel: 2,
        },
        {
          filename: 'raven/scripts/runner.py',
          absPath:
            '/home/ubuntu/.virtualenvs/getsentry/src/raven/raven/scripts/runner.py',
          module: 'raven.scripts.runner',
          package: null,
          platform: null,
          instructionAddr: null,
          symbolAddr: null,
          function: 'send_test_message',
          rawFunction: null,
          symbol: null,
          context: [
            [72, '        level=logging.INFO,'],
            [73, '        stack=True,'],
            [74, "        tags=options.get('tags', {}),"],
            [75, '        extra={'],
            [76, "            'user': get_uid(),"],
            [77, "            'loadavg': get_loadavg(),"],
            [78, '        },'],
            [79, '    ))'],
            [80, ''],
            [81, '    if client.state.did_fail():'],
            [82, "        print('error!')"],
          ],
          lineNo: 77,
          colNo: null,
          inApp: false,
          trust: null,
          vars: {
            "'client'": '<raven.base.Client object at 0x107bb8210>',
            "'data'": null,
            "'k'": '[Filtered]',
            "'options'": {
              "'data'": null,
              "'tags'": null,
            },
          },
          minGroupingLevel: 1,
        },
        {
          filename: 'raven/scripts/runner.py',
          absPath:
            '/home/ubuntu/.virtualenvs/getsentry/src/raven/raven/scripts/runner.py',
          module: 'raven.scripts.runner',
          package: null,
          platform: null,
          instructionAddr: null,
          symbolAddr: null,
          function: 'main',
          rawFunction: null,
          symbol: null,
          context: [
            [107, '    print("Using DSN configuration:")'],
            [108, '    print(" ", dsn)'],
            [109, '    print()'],
            [110, ''],
            [111, "    client = Client(dsn, include_paths=['raven'])"],
            [112, '    send_test_message(client, opts.__dict__)'],
          ],
          lineNo: 112,
          colNo: null,
          inApp: false,
          trust: null,
          vars: {
            "'args'": [
              "'test'",
              "'https://ebc35f33e151401f9deac549978bda11:[Filtered]@sentry.io/1'",
            ],
            "'client'": '<raven.base.Client object at 0x107bb8210>',
            "'dsn'": "'https://ebc35f33e151401f9deac549978bda11:[Filtered]@sentry.io/1'",
            "'opts'": "<Values at 0x107ba3b00: {'data': None, 'tags': None}>",
            "'parser'": '<optparse.OptionParser instance at 0x107ba3368>',
            "'root'": '<logging.Logger object at 0x107ba5b10>',
          },
          minGroupingLevel: 0,
        },
      ],
    },
    ...params,
  };
}