/* @flow */
/* eslint no-unused-vars:0 */

import ShallowRecord from './fixtures/shallow-record/output';

export function createWithAllFields(): ShallowRecord {
  return new ShallowRecord({
    booleanField: true,
    numberField: 101,
    stringField: 'string',
  });
}

export function createWithFieldDefault(): ShallowRecord {
  return new ShallowRecord({
    booleanField: true,
    stringField: 'string',
  });
}

export function update() {
  const record = createWithFieldDefault();
  record.update({ stringField: 'new-string' });
}

export function exportToMap() {
  createWithFieldDefault.toMap();
}

@@ -36,16 +36,50 @@
 s:0 */%0A%0A
+import %7B List %7D from 'immutable';%0A
 import S
@@ -131,16 +131,76 @@
 output';
+%0Aimport NestedRecord from './fixtures/nested-record/output';
 %0A%0Aexport
@@ -211,24 +211,37 @@
 ction create
+ShallowRecord
 WithAllField
@@ -282,32 +282,55 @@
 ShallowRecord(%7B%0A
+    arrayField: %5B'1'%5D,%0A
     booleanField
@@ -417,32 +417,41 @@
 n create
-WithField
+ShallowRecordWith
 Default
+s
 (): Shal
@@ -573,16 +573,29 @@
 n update
+ShallowRecord
 () %7B%0A  c
@@ -614,32 +614,42 @@
 = create
+ShallowRecord
 With
+All
 Field
-Default
+s
 ();%0A  re
@@ -687,32 +687,286 @@
 -string' %7D);%0A%7D%0A%0A
+export function accessFields() %7B%0A  const record = createShallowRecordWithAllFields();%0A%0A  const a: List%3Cstring%3E = record.arrayField;%0A  const b: bool = record.booleanField;%0A  const s: string = record.stringField;%0A  const n: number = record.numberField;%0A%7D%0A%0A
 export function 
@@ -993,24 +993,36 @@
 eate
+ShallowRecord
 With
+All
 Field
-Default
+s()
 .toM

add more type tests