►
Description
In this session we work on making some apollo specs pass and talk about feature specs for the login page.
MR: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/92111
B
All
right,
so
what
we're
doing
is
so
this
create
events,
create
timeline
events.
So,
on
an
incident
you
can
now
you
can
add
timelines.
So
on
an
incident
you
can
see.
What's
happened
in
the
timeline.
B
This
is
the
create
timeline
event
component,
which
I
split
between
create
and
the
actual
form
itself,
so
it
used
to
be.
The
form
was
within
create
now
it
wraps
around
this
form
and
also
the
edit
timeline
event
wraps
around
this
form.
B
Yeah,
okay
yep:
we
can
run
it
yeah.
B
Need
to
yeah
yeah
anyway,
so
edit
and
create
show
the
same
form
it's
just
they
handle,
so
they
need
to
know
like
what
is
the
data?
That's
sent
back
to
the
wrapper
and
do
the
right
apollo
query.
I
just
found
out
that
so
I
was
asking
for
help
with
natalya,
and
so
I'm
passing
this
function
to
handle
the
submit,
and
I
just
found
out
that
that's
incorrect.
It
should
be
emitting
a
event
with
the
details,
so
we
can
also
rewrite
that
yeah
yeah.
B
So
currently,
my
test
is
failing
because
the
so
when
we
do
sorry
when
we
do
this
create
incident
timeline
event.
B
B
B
So
what
natalia
was
showing
me
is
here
is
the
sample
where
she
set
this
up,
where,
when
you
write
the
when
you
you
can
set
the
cache
to
have
data.
B
Yep
so
now
I
have
data
for
cache.
So
before
when
I
create
the
mock
polo,
I
do
the
same
thing.
Clients
default,
client
cache
right
query.
I
give
it
the
query:
I'm
not.
A
B
Sure
this
is
correct.
This
is
the
like
the
graphql
query,
mutation.
I
don't
know.
If
that's
in
the
right
space,
I
give
it
the
data,
which
is,
I
think,.
D
It
looks
like
this
little
standard,
behavior
of
when
you
create
or
update
a
record
on
a
cruddy
type
page
where
you've
already
retrieved
them
and
rather
than
refreshing,
making
a
round
trip
to
the
server
to
update
the
to
re-pull
the
whole
list,
you're
just
sort
of
gonna
say:
oh,
let's
slot
this
into
that
cash
list
that
I've
already
got.
D
A
A
D
D
C
A
I
think
that's
the
one
we
don't
have
to
worry
about
it.
I
guess
what
I'm
also,
what
I'm
really
what
I'm
remembering
is.
A
I
know
that
there's
because
we've
recently
updated
apollo,
and
I
know
that
there
is
a
way
for
apollo
to
completely
forget
about
an
object.
So,
like
imagine,
if
an
object
showed
up
in
multiple
queries
and
I
removed
the
objects,
I
potentially
would
have
to
remove
it
from
multiple
queries.
Like
that's
a
scary
place
to
be
since
apollo.
Actually
like
keeps
track
of
global
ids,
you
can
get
a
have
apollo
forget
about
like
a
global
id,
so
I
I
think
I
was
confused
because
I
was
thinking
oh
instead
of
doing
this
right
great
thing.
A
We
use
this
like
remove
from
cache
this
global
id
thing,
but
that
was
only
under
remove
operation
here,
where
you're
adding
something
or
updating
something.
I
think
I
think
this
is
still
needed,
so
I
and
it's
still
totally
validated,
so
please
just
call
what
I'm
saying.
I'm
sorry,
I'm
sorry
so
yeah.
So
this
makes
sense
so
you're
getting
some
test
failures.
Are
there
other
besides
getting
a
test
to
pass?
Are
there
other
objectives
with
what
you're
wanting
to
do
here.
B
So
what
I
want
to
do
is
what
what
I
actually
want
to
do
is
I
want
to
test
that
when
I
create
an
incident
timeline
event,
and
then
I
do
this
apollo,
which
will
have
a
mocked
result
if
there
are
no
errors.
What
I
want
to
know
is
that
this
event
has
been
emitted.
A
B
The
form
will
be
hidden,
that's
what
I'm
actually
trying
to
test
cool
yeah.
So
it
was
passing
before
because
this
just
errored
out
and
then
we
weren't
so
there's
a
test
that
says
like
don't
close
it
if
we're
adding
another
event
or
don't
close
it.
If
there's
errors
which
passed
because
it
errored
here
and
then
it
never
got
here
and
then
it
just
checked
to
see
if
this
was
emitted
or
not,
and
it
wasn't
so,
it
all
grew.
A
Sorry,
there's
the
same
catch
twice.
Does
that
catch
like
in
case
something
wrong
happens
in
the
then.
B
Oh
yeah,
this
might
be
my
mistake.
I
didn't
quite
understand
why
we
had
like
an
error
being
received
and
then
also
catching
an
error,
so
I
think
I
duplicated
it.
A
D
And
that's
what
graphql
tends
to
do
most
of
the
time
it
very
rarely
would
return
like
an
error
500.
It
tends
to
return
a
success,
http
response,
but
with
errors
inside
of
the
response
yeah.
So
that's
why
we
tend
to
check
that.
I
think,
but
I
guess
the
other
one
would
be
more
catastrophic
failure,
the
networks
down
or
yeah
an
error,
500
or
whatever
yeah.
D
D
B
B
D
C
D
If
it's
back
something's
gone
catastrophically
wrong,
you
might,
I
don't
know,
I
want
to
show
a
generic
error
or
something.
B
D
Isn't
it
yeah
you're
getting
the
errors
back
if
they
come
back,
whereas
if
it's
appropriate
an
actual
exception,
that's
been
thrown,
then
you're
you've
got
a
generic
yeah
yeah.
That
makes
more
sense.
B
B
Yeah,
we
are
sorry
yep
so
making
a
field
project.
I
don't
understand
like.
Where
can
I
find
like
a
description
of
what
it
is
I'm
expecting?
Can
we
see.
A
D
D
So
your
data
for
cash
timeline.
D
D
Yes,
so
I
see
what
you
do.
Do
you
remember
a
minute
ago,
you
changed
your
write
query
because
you
had
it
using
the
mutation
rather
than
a
query.
You
think
that's
your
you're
populating
the
cache
with
the
mutation
result
instead
of
the.
D
Paul
you're
probably
sat
much
more
succinctly
and
interpretably
than
I
would,
but
there
you
go
when.
A
I'm
gonna,
I'm
gonna
rant
a
little
bit
every
single
time.
I
write
tests
involving
apollo.
We
spent
a
couple
of
pairing
sessions
working
on
then
let.
D
B
A
No
well,
what
I
was
gonna
say
is
we
had
a.
We
were
working
on
a
utility
to
generate
that
mock
data
based
on
oh.
D
A
Well,
you're
going
to
get
multiple
quarries
per
request.
We
keep
going
there's
one
with
the
project.
Is
that
one
have
now?
Let's
issue
stuff
right:
that's
not
it!
The
next
one.
D
Is
the
payload
was
this
one
I
missed,
I
wasn't
paying
enough
attention.
Has
it
get
timeline?
Events?
That's
query.
One
is
that
right,
so
yeah.
D
Be
that
so
so
that's
the
payload.
So
if
you
flick
back
to
the
preview
again
and
then
take
the
response
one
hopefully,
yes.
B
B
B
D
D
B
A
Can
we
can
you
scroll
down
and
see
any
other
information
with
this
test?
Failure
that
popped
out
there's.
B
A
D
I
found
out
the
other
week
and
I
haven't
really
played
with
it
as
much
as
I'd
like
to
in
vs
code.
If
you,
you
know
how
to
open
a
new
terminal
with
that,
little
plus
in
the
bottom
right
hand
corner
if
you
click
the
arrow
on
it
rather
than
clicking
on
the
plus
and
you
select
javascript,
debug
terminal,
okay,
and
then
you
put
a
break
point
where
you
were
going
to
add
your
console
log
on
line
83
on
the
right
hand,
side
stick
a
little
break
point.
A
If
we
just
put
f
on
107.
B
A
And
I
think
I
think
I
see
what's
going
on
too,
but
what
I
think
on
line
109.
We
might
need
to
call
wait
for
problems.
D
B
D
B
A
D
C
D
C
D
B
D
Know
why
it's
got
it
listed
here
yeah.
I
don't
know
what
it
is
about
that
that
it's
not
liking.
To
be
honest,
so
we
might
have
to
try,
try
your
old
school
console
log
and
see
if
it
logs
to
the
console.
If
it
doesn't,
then
it
might
be
that
it's
not
getting
that
far
or
there
might
be
some
crazy
reason
that
I
don't
understand
why.
You
can't
why
you
can't
do
that.
A
A
Oh,
look
this
air
creating
the
air
can
on
line
107.
Can
we
can
we
change
it
to
fit
on
line
107.,
okay,
fit.
A
A
I
know
no,
I
know
I
I
tend
to
not
be
a
great
navigator
over
the
phone.
B
C
A
Where
does
ad
event
response
get?
Where
does
that
get
set
up.
A
A
A
All
right
to
ensure
some
determinism,
I'm
going
to
share
my
favorite
way
of
doing
this.
Okay.
A
So
if
you
go
up
to
create
mock
apollo
provider,.
A
I
find
it
to
be
really
nice
when
we
can
set
these
things
up
and
then
just
mutate
them
a
little
bit.
A
We
set
them
up
fresh
every
single
run,
but
then
we
can
just
mutate
them
a
little
bit
when
needed,
and
so
that's,
where
request
handlers
are
fantastic,
because
I
just
need
to
have
a
reference
to
the
response
handler
and
I
can
replace
what
that
spy
returns
with
anywhere
in
the
code.
A
So
when
you
pass
these
to
the
crate,
maka
bottle,
it's
basically
a
map
implemented
as
a
2d
array.
But
it's
a
map
of
apollo
query,
slash
mutation
to
function
and
that
function
we
can
put
a
spy
there,
which
we
already
are
doing.
D
A
So
here's,
let's:
let's
do
this!
Let
us.
A
B
A
So,
let's
create
a
let's:
after
let
rapper
I'm
used,
I
usually
right
out
right
below
line
63..
I
usually
hate
let's,
but
they
find
themselves.
I
find
them
to
be
highly
useful
in
organizing
determinism
and
tests.
Let's
create
response
spy
here,
spy,
yes
swan
that
actually
may
be
a
cool
movie,
just
declare
it.
Let's
declare
response
by
and
I'm
thinking
way
ahead,
but
let's
also
put
the
apollo
provider
here.
A
Sweet
all
right,
so
here's
the
beautiful
thing
on
above
line
81,
where
we
do
our
after
each.
We
can
do
it
before
each
and
we
will
set
up
the
same
response,
find
the
same
apollo
provider
for
everything.
A
Yeah
sweet,
so
let's
move
what
we
did
on
that.
We
have
a
const
where
we're
creating
this
mock
apollo
spy
thing.
If
you
go
up
to
the
very
top
yay.
B
A
And
we
don't
need
to
do
cons,
we're
not
redeclaring
it
we're
gonna,
set
it
up
yeah,
and
so
then
we
don't
need
to
do
the
mock
reset
on
line
84,
because
every
before
each
we're
guaranteed
to
have
a
fresh
thing.
So
we
don't
need
and
then
let's
go
back
up
to
our
function
where
we
create
apollo
provider.
A
B
A
Yep
and
if
you
scroll
down
then
do
we
return
something
from
here?
Yes,
great,
okay!
So
then
that's
if
you
scroll
down
that's
what
we'll
initialize,
if
you
go
down
to
the
before
each
after,
we
create
a
response
by
we'll,
create
mock
apollo
provider
and
assign
that
to
our
shared
variable,
but
it's
going
to
have
to
be
after
we
do
the
response
by.
D
B
A
A
D
B
A
Mount
component,
we
just
get
rid
of
the
mock
apollo
argument
line.
D
D
B
A
And
so
here's,
what's
really
here's
what's
really
cool
with
the
way
just
spies,
work,
yeah,
you
know
yeah,
you
could
just
do
the
I
forgot
what
they
call
it,
but
you
didn't
need
to
pull
it
there
yeah.
So
what's
really.
A
What's
really
cool
with
the
way
just
spies
work
is
I
can
change
the
way
the
spy
behaves?
A
A
A
That's
not
needed
anymore
is
any
other
there.
Any
other.
A
B
A
Yes,
we
can,
we
don't
need
ad
event
response,
and
so
what
we
would
do
is
change
response
spy
to
do
this
so,
instead
of
add
event
response.
We
still
do
the
mock
resolve
stuff,
just
like
we
did,
but
we
would
do
response
by.
A
A
Yeah,
yes,
nice
yeah
yeah
that
should
do
okay.
Can
we
go
to
the
very
top
and
double
check
that
we
got
rid
of
to
very
very
top?
We
had
yeah
all
right.
I
think
we're
good
okay,
so
this
thing
is
still
failing
and
if
we
console
log
that
data
that
we
get
back
into.
C
A
Can
we
console
log
the
catch.
D
A
A
B
Sorry
we're
doing
that
on
the
mutation
on
on
this.
B
A
Does
that
make
sense,
I
think
we
would
need
errors
as
a
sibling
to
timeline
event.
A
A
B
B
D
B
A
So
emmer,
which
says
these
produce
things,
is
really
really
good
at
having
us
immutably
update
some
level
of
state
and
so
yeah,
so
that
we
don't
have
to
refetch
the
whole
query-
and
I
know
I
just
did
this
thing,
so
I
could
shimmy
this
object
into
here.
We
can
use
emmer
really
nicely
to
just
like
hey.
We
just
inserted
a
value,
don't
feel
like
you
have
to
refetch
everything.
D
D
B
Yeah
all
right,
so
maybe
it's
not
working,
probably
because,
like
I
don't
know
but
like,
is
it
actually
running
this
properly
or
is
it
like
making
some
weird,
not
browser?
You
know
what
I
mean
like.
Is
it
translating
this
to
jess.
B
B
D
A
B
A
So
cool
we
got,
we
got
timeline
event
because
we
don't
have
any
errors.
That's
great!
That's
a
problem!
So
if
we
keep
going
let's
step
over
so.
B
Our
problem
was
with
project,
so
it's
probably
here.
We
have
an
issue
right.
B
D
No,
no,
if
you
move
your
cursor
up,
a
tiny,
tiny
little
bit
left
left
left
left
left
right
up.
Oh.
A
D
D
A
Let's
go
ahead
and
let's
go
ahead
and
run
it
again,
but
let's
not
dive
into
the
produce
function.
Let's
stop
at
right
before
we
dive
into
this
closure
and
then
we'll.
A
A
Oops
we're
going
to
have
to
step
one
line
next
and
then
we'll
be
able
to
read
it.
A
Is
right?
That's
it
that's
yeah,
we'll
step
over
yeah,
yeah,
okay
and
then
let's
do
source
data
come
on
source
data.
It's
null
all
right.
Okay,
so
record
is
not
working.
We
are
doing
this
cache
write.
Query
thing
all
of
that's
great,
but
what
might
be
happening
is
that
the
variables
aren't
matching.
D
A
Here
it
is
on
our
on
our
debug
window
at
the
top
left.
There's
the
variables
value,
maybe
if
we
just
copy
that
over
into
there,
we'll
probably
want
to
use
actual
values,
but
if
we
just
copy
those
into
their
oh,
I
can't.
B
D
B
B
So
this
we
can
just
use
this
right.
This
is
the
same
as
this.
A
C
B
A
A
D
B
A
On
I
do
want
to
just
clarify,
like
this
setup
of
when
we
create
the
apollo
provider
and
manage
using
just
spies
to
just
mutate
the
return
value
whenever
we
need
to
before
we
create
the
component.
This
is
the
most
deterministic
and
simplest
setup
that
I
have
discovered
for
myself.
When
I
use
this
stuff,
you
don't
have
to
do
it
this
way,
but
this
this
has
been
helpful
for
me.
D
Am
I
right,
I'm
thinking
it's
maybe
slightly
contentious
as
well.
Some
people
are
quiet
that
they're
quite
keen
on
passing
the
the
apollo
provider,
a
mock-up
or
whatever
is
a
variable
to
the
create
rapper
or
create.
What's
it
called
create.
You
know
what
I'm
saying
some
people
don't
like
these
global
this
mechanism
for
doing
it,
but
some.
A
A
Multiple
of
them
they
can
bump
into
each
other,
and
that
was
my
thought
of
what
was
happening
of.
Why
we're
getting
an
error
response
when
that
wasn't
happening
in
the
blog
who
knows
and
so
yeah
I
I
I
don't
like
the
let
keyword
and
I've
created
some
really
really
wild
ideas
for
how
we
can
ensure
that
only
one
collaborator
is
created,
protests
without
needing
this
kind
of
let
and
before
each,
but
this
is
just
the
nature
of
javascript
testing,
so
anyways
yeah
we're
we're
kind
of
that
time,
but
yeah.
A
A
So
that's
my
I'm
not
probably
not
using
that
word
correctly.
I
actually
not
fragile,
because
the
tests
will
most
of
the
time
happen
deterministically.
But
what
can
happen
is
if
I
change
the
order
of
tests,
they
will
all
of
a
sudden
break,
because
certain
tests
are
bumping
into
each
other.
A
Tests
also
aren't
deterministic
we're
even
in
the
same
order.
You
run
them
multiple
times,
because
they're
dependent
on
some
sort
of
date
to
random
stuff,
so
we've
tried
to
make
them
deterministic,
but
I
actually
I
use
that
word
incorrectly,
I
actually
mean
fragile
and
where
tests
are
bumping
into
each
other.
So
the
order
of
this
can
all
of
a
sudden.
A
That's
a
good
word
too,
and
making
the
tests
independent
from
each
other
yeah.
So
we
have
oh
man,
all
the
can
of
worms
that
went
from
ten
percent
is
like
ninety
percent
about
the
first
opener,
but
I'm
going
to
close
it
to
see
if
we
have
ten
more
minutes
for
maybe
yannick
to
share
what
you're
working
on.
C
Seriously
this
time
and
if
anybody
needs
to
drop
please
feel
free
to
and
what
I
wanted
to
to
show
you
or
ask
your
opinion
about
and
what
I'm
currently
working
on.
Let
me
drive
the
screen
is:
can
you
see
something
like
a
login
page,
because
I'm
not
quite
awesome.
C
I
am
currently
working
on
a
scam
ui,
that's
what
I
am
no
so
currently
working
on
a
redesign
for
our
login
page,
and
that
is
the
current
state
of
it
and
the
redesign
and
all
of
those
things
these
are
kind
of
going
good.
But
what
is
very
interesting
is
regarding
the
way
we
handle
integration
tests,
because
disimr,
which
includes
this
ui,
is
about
600
lines
of
diff.
Well,
like
it's
huge
our
current,
our
current
login
page
is
perfect.
It
has
a
perfect
test
coverage.
C
That's
absolutely
fine,
and
I
was
asking
myself
like
okay
cool.
I
have
redesigned
this
thing
and
that
is
the
important
part.
Functionality
stays
100.
All
of
these
changes
are
purely
ui
changes.
There
might
be
like
a
heading
missing
or
something,
but
that
is
about
it.
Everything
under
the
hood
hasn't
been
touched,
stays
the
same,
so
I
kind
of
committed
this
and
the
pipeline
immediately
went
green
because
all
of
the
tests
were
still
running
just
as
fine
perfect.
The
thing
with
that
is
our
r
specs.
C
So
this
is,
this
feature
is
obviously
behind
a
flag
when
we
do
run
our
integration
tests,
the
feature
flag
will
be
on
by
default,
and
that
means
that's
actually
the
so
we're
actually
testing
the
new
design
that
that's
a
good
thing,
but
is
that
good
enough,
like
I
was
asking
myself?
Okay?
C
Can
I
really
push
this
forward
without
without
adding
a
single
test
which
didn't
feel
didn't
feel
too
good,
and
there
might
actually
be
a
test
gap
which
I
already
discovered
like
if
we
agree
on
that,
the
old
sign-in
page
today
has
a
good
coverage
and
we
are
now
introducing
the
new
one
which
our
test
will
then
be
running
against,
because
the
flag
is
on
by
default.
C
If
somebody
decides
to
change
the
old
version
of
it
tomorrow,
he
or
she
would
actually
be
able
to
break
this.
So
therefore,
that's
something
we
might
wanna,
we
we
definitely
wanna
cover.
So
here
is
how
I
am
currently
trying
to
fix
this.
I
have
just
taken
all
the
tests
that
are
kind
of
related
like
this
is.
C
This
is
where
the
600
like
this
comes
from
and
I'm
doing
a
loop
against
my
feature,
flag
and
I'll,
be
turning
it
on
once
and
I'll
be
turning
it
off
the
second
time
and
I'll
just
run
out
of
this
and
that's
the
best
solution.
I
could
think
of.
I
still
it's
it's
kind
of
ugly
since
we're
running
a
lot
of
tests
and
the
loop
is
probably.
D
D
And
again,
I
could
you
because
I've,
I
don't
know
if
I've
seen
each
I'm
sure
it
must
be
used,
but
you've
obviously
got
those
kind
of
table.
Parameterized
kind
of
aspects
as
well,
but.
D
D
Sorry
with
w-I-t-h
underscore
then
t-h-e-m
for
mike
yeah.
C
But
them
okay.
D
A
B
D
A
D
A
A
whole
parameterized
spec
feature
to
our
spec,
which
is
my
favorite.
It's
really
cool.
C
Yeah
tough
call
like
that's
that's
really
intersectional
stuff
for
my
eyes
like
it
is
basically
we'll
be
rendering
a
form
and
those
tests
will
be
checking
if
this
form
does
actually,
if
it
does
what
it
should
be
like
has
this
this,
the
request
has
been
sent,
that's
kind
of
what
we're
after.
A
Okay-
so
I
I
want
to
I
want
to
quell-
I
don't
is
that
the
right
word
I
want
to
quell
one
of
your
fears
is
that
is
that
a
word
or
is
it
qualm.
D
A
A
No,
I
don't
mean
I
guess
I
don't
mean
that,
to
the
full
extent,
the
end
to
end
specs
will
run
against
they,
they
will
catch
the
feature
flag
off.
A
Not
quite
they
run
against
real
environments,
so
it
would
be
based
on
like
what
the
devs.getlab.com.
A
Environment
is,
or
the
staging
one
so
you
can
set.
A
You
can
set
the
feature
flag
on
for
the
qa
specs,
but
like
ones
that
run
for
a
pipeline,
they're,
just
gonna
run
and
they're
gonna
run
without
they're
gonna
run
without
the
flag
on
you
turn
this
on
staging
then
what's
gonna
happen.
Is
the
pipeline's
gonna
run
on
staging
to
verify
everything's
good
before
we
actually
make
a
deployment,
and
it
has
to
pass
before
we
can
deploy
so
like
deployments,
get
blocked
the
end-to-end
tests
fail.
A
So
I
just
want
to
just
clarify
that,
as
far
as
like
testing
different
environments,
still,
the
qa
specs
should
provide
some
reasonable
amount
of
coverage
of
the
flag
being
off.
C
A
C
That's
that's
right,
I'm
what
I'm
on
the
fence
about
is.
I
do
like
this.
This
flag
will
probably
not
be
merged
and
then
turned
on
a
day
later,
so
there
will
be
plenty
of
time
frame
to
actually
introduce
an
issue
into
the
into
the
old
version
of
the
login
page.
Therefore,
I
feel
like
we
really
should
have
discovered.
On
the
other
hand,
all
those.
C
Tests
that
we
are
running
on
staging
and
the
different
environments
doesn't
really
matter
which
feature
they're
testing
they
will
have
to
log
in
before
that.
So
if
we
actually
manage
to
break
the
login
page,
I
expect
to
see
a
lot
of
red
a
lot
of
work
on
our
tests.
So
therefore,
that's,
probably
the
most
best
covered
feature
we're
having.
A
A
C
A
A
C
Okay,
gotcha:
what
about
the
nevermind
with
them
for
a
second?
If
we
would
go
for
the
for
the
approach
we'll
be
seeing
on
the
left
side,
would
that
be?
C
C
A
A
Definitely
I
I
would
think
of
just
what
are
those?
What
are
those
worst
case
scenarios
that
could
go
wrong
and
how
can
we
protect
them?
The
worst
case
scenario
users
can't
sign
up
so
definitely
want
to
verify
that
with
flag
on
and
off
that,
I
can
go
for
the
happy
sign-in
path.
Clicking
one
of
the
providers
is
probably
a
good
idea
doing
the
two-factor
authentication
going
through
that
process
is
a
really
good
idea.
A
He
just
worked
on
this
weird,
I
don't
mean
to
say
it's
weird,
but
it
was
unusual.
Oh
this
unusual
requirement
for
some
like
third-party
captcha
thing,
so
the
camera.
C
A
Could
prevent
if
that
stuff,
isn't
loading
or
talking
correctly,
that
stuff
could
prevent
people
from
signing
in
too
it
was
important
that
come
to
my
mind,
just
the
normal
sign
in
clicking
on
one
of
the
providers.
Two-Factor
authentication
capture,
stuff,
slash
talking
to
paul
gv
about
the
caption
stuff.
He
was
working
on.
C
C
Sounds
awesome
thanks
so
much
for
the
feedback.
That
was
it
basically,
that
was
the
I'm
just
wanting.
A
C
A
We
want
to
wrap
it
up
again
for
hanging
out.
Let's
spend
some
time
together,
working
on
some
apollo
tests,
yeah
thanks
james
for
bringing
it
up.
Sorry,
we
didn't
get
to
your
topic.
Lee.
D
No,
no,
no!
It's
it's
it's
something
that
I'm
gonna
just
chip
away
at,
but
I'll
give
props.
While
we're
here
to
that
component.
I
don't
know
if
you've
worked
with
it,
but
it's
super
sweet.
What
did
I
say?
It's
called
something
like
paginated
with
search
and
tabs
or
isn't.
A
D
Again,
that's
you
know.
We
work
together
on
the
making
a
generic
crud
form.
It's
awesome
to
see
that
we've
got
this.
Generic
list
form
that
handles
like
searching
sorting
with
a
gl
table
embedded
with
tabs
for,
like
inactive,
active
or
open
closed.
It's
really
interesting.
I
haven't
seen
it.
Have
you
not
seen
it
before
paul
am
I
wow,
but
this
is.
D
Should
I
just
let
me
see
if
I
can
just
share
my
screen
for
like
five
definitely
broken
it.
I'm
gonna
share
my
screen
anyway,
just
for
like
five
seconds
before
we
ditch
so
this
is
it
and
it's
broken
today.
I'm
gonna
hit
f5
just
in
case.
What's
it
moaning
about
five,
I've
broken
the
back
end
for
sure.
D
It
with
sort
of
all
columns-
and
even
this
is
part
of
the
component-
to
be
honest,
so
needs
a
bit
of
tweaking.
I
I'm
I'm
a
little
bit.
What's
the
word
disappointed
how
much
we
have
to
build
in
the
back
end,
so
I've
had
to
build
like
more
graphql
resolvers
to
return
the
the
counts.
I
was
kind
of
hoping
there
might
be
something
clever
that
could
reutilize
the
existing
stuff.
But
it's
it's.
It's
awesome.
D
You
know,
so
maybe
for
another
time
or
I'll
bumping,
you
guys
on
the
mr,
if
you're
interested,
because
it's.
A
Really
cool
yeah,
or
maybe
on
the
back
comparing
on
monday,
we
can
maybe
work
on
some
of
the
back
and
stuff
for
it.
It
is
funny
when
the
component
out
of
the
box
has
so
many
front-end
features
that
it
back
in
has
way
more
work
than
they
anticipate.
C
D
Back
end
graphql,
endpoints
and
now
I'm
having
to
because
before
it
was
all
front
end,
it
used
to
grab
all
of
them
and
it
did
the
sorting
on
the
front
end.
So
gl
table
did
all
the
hard
work
now
that
it's
paginated,
the
sorting
has
to
happen
on
the
server
side.
So
I've
got
to
basically
write
all
of
the
code
to
handle
all
the
sorting
sites
will.