# queryfn tests

FEATURE: queryfn-offset
background:
  type Flight struct {id int unique, wid int optional }  end
thenType: struct

---
title: limit 2
given:
  insert Flight {id: 55, wid: 4 }
  insert Flight {id: 56, wid: 3 }
  insert Flight {id: 57, wid: 2 }
  insert Flight {id: 58, wid: 1 }
when:
  let x = Flight[true].offset(1).limit(2)
then:
value:a:Flight {
 vid:56
 vwid:3
}
value:a:Flight {
 vid:57
 vwid:2
}

---
title: limit 2 reverse
given:
  insert Flight {id: 55, wid: 4 }
  insert Flight {id: 56, wid: 3 }
  insert Flight {id: 57, wid: 2 }
  insert Flight {id: 58, wid: 1 }
when:
  let x = Flight[true].limit(2).offset(1)
then:
value:a:Flight {
 vid:56
 vwid:3
}
value:a:Flight {
 vid:57
 vwid:2
}


---
title: limit 0 reverse
given:
  insert Flight {id: 55, wid: 4 }
  insert Flight {id: 56, wid: 3 }
  insert Flight {id: 57, wid: 2 }
  insert Flight {id: 58, wid: 1 }
when:
  let x = Flight[true].limit(0).offset(1)
then:
null

---
title: limit 100. is ok if limit arg is larger than result list.
given:
  insert Flight {id: 55, wid: 4 }
  insert Flight {id: 56, wid: 3 }
  insert Flight {id: 57, wid: 2 }
  insert Flight {id: 58, wid: 1 }
when:
  let x = Flight[true].offset(2).limit(100)
then:
value:a:Flight {
 vid:57
 vwid:2
}
value:a:Flight {
 vid:58
 vwid:1
}


---
title: null values
given:
  insert Flight {id: 55, wid: 4 }
  insert Flight {id: 56 }
  insert Flight {id: 57, wid: 2 }
  insert Flight {id: 58, wid: 1 }
when:
  let x = Flight[true].limit(2)
then:
value:a:Flight {
 vid:55
 vwid:4
}
value:a:Flight {
 vid:56
 vwid:null
}

