►
Description
In this paring session we work on configuring Jest to properly detect what tests to run when an HTML fixture changes in a pipeline.
00:00 Detecting tests to run based on fixture changes
33:00 Working on tests with cookie expirations
A
Having
is
so
I'm
looking
at
that
Master
broken
it's
from
six
months
ago,
so
things
have
changed
a
lot
in
the
in
the
I'm
just
investigating,
essentially
playing
around
with
jest
trying
to
understand
what
caused
that
broken
master.
So
VMR
was
green
for
this
particular
broken
master
and
those
three
specs
started
failing
for
everybody
else.
A
The
Mr
is
this
one
here
so
introducing
pipeline
schedules,
which
is
mostly
front,
end
related
I,
would
say,
and
the
pipelines
were
green
because
we
are
running,
we
call
them
predictive
tasks
so
essentially
only
a
subset
of
this,
not
the
entire
Suite
right,
at
least
at
the
time.
We
did
that
and
my
problem,
or
what
I
don't
understand,
is
the
spec
that
is
failing.
One
of
the
specs
that
is
failing
is
this
one.
A
Ci
variable
lists
and
I
see
this
file
on
at
least
the
source
file
is
being
a
reference
is
being
used
by
pipeline
schedules,
but
we
don't
touch
it
in
the
Mr
and
the
only
relationship
that
I
see
between
pipeline
schedule
and
CI
variables
list
is
the
fact
that
pipeline
schedules
uses
CI
variable
lists,
but
I
don't
understand
how
changing
pipeline
schedules
or
introducing
them
would
break
CI
variables,
lists
and
I've
been
stuck
there
for
a.
C
B
Okay,
so
this
introduced
I,
say
pipeline
scheduled
or
I,
don't
know
if
those
are
new
components
or
yeah.
Those
are
new
components.
Anna.
A
Yeah,
that's
correct,
oh
and
I
must
I
must
mention
something
else.
I
didn't
understand
this
fix,
but
it
was
mentioned
that
it
was
easy
blah
blah.
Where
was
it?
I
will
find
it
here.
Yeah
we
needed
to
stop
stop
feature
Flags
so
that
apparently
fixed
the
problem,
but
to
be
fair,
don't
understand
what
that
does.
Oh
yeah
yeah.
B
B
Sorry
I'm
gonna
I'm,
gonna,
I'm,
Gonna
Keep
about
we're
gonna
bounce
around
I'm.
Sorry,
man.
B
A
Oh
yeah
sure
so
we
could
check
the
job
and
then
yeah
no
wait
well.
I
could
check
the
MMR.
B
Hoppers
fixtures
load
HTML
fixture,
so
interesting
line.
14.
B
B
But
now,
if
the
feature
is
enabled,
we
don't
render
the
farm
anymore,
we
render
those
pipeline
schedules
form
edit,
but
the
CI
variable
spec
was
using
this
HTML
file.
The
whole
form
it
was
it
was
trying
to
read
from
the
form
so
like
I
would
I
think
we
would
see
that
in
the
let's
con
Let's
test
that
hypothesis,
but
can
we
look
at
what
the
failed
messages
were
for
that
test?.
A
Yeah,
of
course,
it's
right
here
so
anyway,
that's
native
form.
B
Yeah
yeah:
it's
not
even
able
to
find
certain
things.
It's
trying
to
find
yes,
because
the
fixture
changed
under
the
hood,
because
we
wrapped
the
previous
Behavior
we
introduce
new
Behavior
with
a
feature
flag,
but
in
test
environment
feature
flags
are
always
on
and
fixtures
count
as
a
test
environment
so
generating
these
fixtures.
From
for
the
just
test
to
read,
we
run
that
those
fixture,
R,
spec
files
and
feature
flags
are
on
by
default,
so
we
broke.
One
of
the
fixtures
we've
been
absolutely
insane,
though,
is
if
that
test
passed
on
the
Mr.
A
No,
it
did
not
that's
the
part
I'm
trying.
That's
a
follow-up
story
at
the
time.
What
we
did
we,
we
just
heavily
relied
on.
How
is
it
called
that
just
flag
called
find
related
tests?
We
heavily
relied
on
this
one
and
it
did
not
apparently
detect
anything
based
on
the
changes
so
based
on
those
files
that
changed
here.
It
did
not
detect
right
right.
A
Yeah,
though
it
didn't
basically
didn't,
run
those
tasks
and
after
that
I
think
it
was
right
after
this
that
we
decided
to
run
the
full
pipelines
like
front-end
pipelines,
front-end
tasks
for
every
Mr,
at
least
once
yes,
yeah
okay.
So
so
that
means
that's
very
interesting.
So
pipeline
schedules
were
actually
it's.
The
other
way
around
I
didn't
see
that
so
pipeline
schedules
are
actually
included
inside
the
CI
variables
inside
the
CI
variables
list.
So
CR
variables
list
depend
on
those
on
Pipeline
schedules.
B
The
tests
too,
it's
possible
that
none
of
the
production
code
does
it's.
Just
the
production
code
needs
is
kind
of
taking
some
sort
of
like
integration,
test
approach
and
or
the
test
is
kind
of
taking
that
approach.
So
it's
like
hey,
let's
just
run
our
bit
in
the
context
of
this
pipeline
schedules.
Page
I
have
no
idea.
I
haven't
looked
at
the
production
code,
but
yeah,
okay,
but
yeah.
The
find
related
test
is
interesting
because
that's
only
going.
B
It
sounds
like
a
pretty
good
solution
for
this
problem,
but
I
could
see
it
still
being
possible
for
maybe
instead
of
a
flag,
but
I've
just
touched
that
HTML
file
and
wrapped
something
that
a
unit
test
was
expecting
so
that
that
thing's
not
rendering
anymore,
whether
it
was
at
the
flag
or
whether
it
was
some
sort
of
application
setting
or
whatever
it
was
so
it
would
be
really
cool
to
find
related
tests
based
on
touched
HTML
files.
B
A
Yeah,
actually
we're
looking
at
so
what
we
did
for
our
spec.
We
did
a
lot
of
things
like
related
to
that,
a
bit
more
advanced
mappings
like
for
instance.
If
you
change
a
view,
an
HTML
file
will
try
to
run
the
feature
specs
that
we
think
are
associated.
It's
mostly
probabilistic.
It's
based
on
the
name
like
on
the
path
of
the
file,
but,
like
we've
done
a
few
of
those
and
we're
looking
now
for
jest,
at
the
very
least,
to
have
a
static
list
of
files.
A
So
if
we
know
you
know
like
for
the
basic
ones
like
you
say,
okay,
if
we
change
those
files
around
here,
we
should
run
those
texts
around
here,
trying
to
be
a
bit
more
advanced,
but
so
far
it's
only
relying
on
that
on
that
flag,
which
I
had
troubles
understanding
so
I
asked
a
lot
of
questions
already
got
some
pretty
cool
insights
about
it.
A
I
thought
the
dependency
was
reversed
for
some
reason,
I
always
thought
that
yeah,
it's
I,
looked
at
it
as
a
dependency
tree,
but
the
other
way
around
I
thought.
If
you
include
something
it
will
run
the
tests
for
that.
For
the
file
you're,
including,
and
it's
the
other
way
around
anyways.
B
Yeah
the
load
HTML
fixture
thing
is
interesting.
I
wonder
if
yeah
I
wonder
if
we'd
be
able
to
see
a
list
of
all
of
those
kind
of
things
they
get
pulled.
A
Because
this
one
will
load
area
I
need
to
look
into
this,
what
it
actually
does,
because
I
have
a
very
basic
understanding
of
fixtures.
A
B
You
can
actually
look
at
a
line:
14
yeah.
If
you
want
to
copy
this
string
and
and
switch
the
project
for
it,
you
can
see
where
it
gets
defined.
I
think
oh,
not
not
going
to
the
file.
Actually,
okay,
do
a
search
for
this,
a
project-wide
search
for
the
screen
for
the
screen,
just
the
inner
part,
okay,
yeah.
B
So
they're
in
the
front
end
fixtures.
So
all
of
these
fixtures
have
a
the
the
name
of
the
test
is
what
actually
gets
written
is
the
file
it
gets
written
to,
okay,
and
so
so
these
are
all
targeting
the
online
19
the
controller.
B
A
Yeah
yeah
I
see
I
start
to
see
that
and
oh,
but
you
were
saying
something
before
with
the
stick,
just
though
the
feature
Flags
whenever
so
they're
always
enabled
they're
always
done
in
the
tests
which
yeah
I
guess
makes
sense
to
me,
but
then
so
that
you
know,
because
we
want
to
fail
early,
we
want
to
test
it.
Okay,
you
want
to
test
it
all
the
time
and
here
so
we
do
that.
A
Okay,
we
have
that
one
here
we're
going
to
generate
we're
going
to
store
it
somewhere,
most
probably
okay,
then
this
one
runs
because
it
was
mentioned
in
the
Master
broken
here.
Actually
another
issue.
That
was
that
we
have
for
ourselves
we
mentioned,
but
I
don't
have
data
for
that,
so
I
couldn't
find
like.
However,
the
find
rateist
is
enabled
to
find
any
cells
when
front
test
pictures
are
loaded
with
a
helper
method
like
load
HTML
feature.
A
B
B
Yeah,
it's
really
interesting
is
that
the
same
broken
Master
issue.
Yes,
yes,
it
is
okay,
so
I
would
be
really
so.
There's
there's
other
ways
we
load
fixtures
and
doing
the
load.
Html
fixture
is
probably
a
helper
that
adds
more
problems
than
helps.
C
B
B
B
So
all
that
to
say
we
run,
find
related
tests
and
it'd,
be
news
to
me
and
I
would
be
really
surprised
if
something
that
changed
one
of
these
fixtures,
it
was
able
to
find
the
Jazz
test
using
it,
because
what
I
find
interesting
is
what
do
we
pass
to
find
related
tests?
Do
we
just
pass
the
Mr
changes?
Yes,.
A
Yeah
and
no
way
there's
something
else.
There's
the
we
haven't
no,
but
that's
not
for
chest,
it
might
be
we
pass.
Let
me
find
it
because
I've
been
working
with
this
recently,
we
have
something
I
think
I
need
I,
just
need
to
Game
On
fixtures,
because
every
time
we
talk
about
those
I
feel
a
bit
off
in
here
yeah.
It's
actually
this
one
predictive
tasks.
We
are
find
changes,
excellence,
and
here
we
are
using
fixture
mapping,
oh
wow,
and
where
do
we
pass
those
the
front
end?
A
We
essentially
add
so
at
the
end
of
that
class
we
yeah.
The
first
thing
we
pass
is
the
changes
from
the
MR,
the
file
that
change
in
the
Mr
and
we're.
We
have
that
mapping
front
ends
fixture
mapping,
which
is
coming
from
the
file
which
is
I
just
need
to
find
the
file,
so
that
I
can
find
the
format.
But
essentially
we
have
that
mapping
key
value
where
we
would
refine
changes.
You
hear
a
feature,
so
this
environment
variable
here,
that's
what
I
was
looking
at
a
crystal
ball:
front-end
fixtures,
mapping.json,
yeah,.
A
I
think
we
cache
it
it's.
So
it's
not
check
I,
don't
think
it's
checked
into
the
repo
unless
we
cache
it
yeah
and
this
one
I
will
need
to
see
what
this
one
actually
does,
because
I
don't
know
in
detail
what
it
does,
but
I'm
not
sure
whether
we
use
that
for
jest.
We,
whether
it's
only
for
our
spec,
but
it's
probably
for
just
it-
would
make
sense
so.
B
B
A
I
need
to
check
that
I
need
to
check
that,
but
easiest
way
right
now
would
be
to
go
on
Master,
because
I've
been
working
on
this
quite
a
lot
and
I
changed
the
structure
quite
a
lot.
So
yeah.
A
Oh,
but
I
have
a
better
idea.
Let's
see
what
find
related
test,
what
we
actually
use
here
so
predictive
there
you
go
just
CI
productive
coverage
find
related
test.
We
pack
our
spec
change,
yeah.
We
passed
it
to
find
related
tests
because
that
files-
that's
the
file
I
talked
about
before
it
can.
It
contains
both
the
changes
from
the
MR,
the
file
names
plus
those
mappings
wow.
So
so
we
are
having
the
fixtures
to
find
related
tests.
Yeah.
B
B
So
if
assuming
that,
that
means,
if
something
would
it
have
changed
a
fixture,
we
know
how
to
tell
what
just
tests
would
requires
that
fixture
I
could
see
it
still
having
a
problem
when
we
call
them
load
HTML
fixture
method,
because
the
find
related
test
that
Jess
does
I
think
is
only
able
to
work
off
of
imports
and
the
load
HTML
fixture
I.
Think
if
you,
if
you
could
jump
into
the
jump
into
that
module
helpers,
is
actually
an
alias
for
yeah
helpers,
fixtures,
yeah
yeah
there.
It's
actually
I,
think
I.
B
Git
fixture
is
what
is
it
doing
it's
joining
to
path
and
it's
reading
the
file
from
the
file
system,
so
none
of
that
import
tree
dependency
stuff.
That
just
depends
on
to
find
what's
related,
and
none
of
that
could
see
us
when
we
use
this
thing
really
you're
right
yeah.
So
we
really
shouldn't
use
this
thing.
A
It's
actually
one
of
the
suggestions
from
the
from
the
issue.
I
saw
here,
it
was
to
say,
encouraging
static,
import
statements
rather
than
helping
methods
or
that
test
mapping,
yeah
I
think
now
the
person
that
wrote
this
was
really
yeah
she's
on
PTO
for
two
weeks,
so
I
couldn't
ask
her,
but
she
I
think
she
she's
way
deeper
in
the
problem
than
I
am
but
yeah
I
see
the
problem,
at
least
with
HTML
fixture.
B
Let's
see
if
we
can
how
many
of
these,
how
many
of
these
do
we
have
it's,
not
that
many
right
question.
Oh,
it
says
a
hundred
and
oh,
it's
or
49.
A
55,
sorry,
it's
all
right
and
and
some
are
loading
something
called
fixture:
yeah.
Okay,
it's
just
different.
Okay,.
B
I
think
we
could
do
you
want
to
see
if
we
can
fix
one
of
these
while
we're
here.
Maybe
we.
B
Raise
so
the
one
thing
I
think
we'll
need
to
one
thing
I
think
will
need
to
figure
out,
is.
B
Because
we
don't,
we
need
to
tell
Jess
how
we
wanted
to
treat
these
files
we
want
to
import
importing.
Json
is
easy
for
just
for
node,
because
no
just
trees
like
a
Json
object.
We
want
these
to
just
import
it
raw,
don't
do
any
transformation
to
it
or
anything
like
that.
I,
don't
know
if
we're
already
doing
this
with
any
other
kind
of
just
thing.
C
C
B
Yeah,
let's,
let's
just
for
right
now,
let's
add
HTML
to
the
end
of
this
at
the
end
of
this
list
here,
yeah.
B
I
wouldn't
want
to
commit
it.
I
wouldn't
want
it
to
merge
to
merge
it
like
this,
because
I
think
I'd
want
to
scope
it
only
to
fixtures
that
we're
loading
with
HTML
right
now.
This
is
saying
any
HTML
import
that
Jess
finds
we're
going
to
do
the
raw
transformation
which
I'm
not
entirely
sure
if
this
is
in
sync
with
how
we
load
webpack
modules.
So
we
unfortunately
Jess
and
webpack
load
things
in
different
differently,
but
we
really
want
them
to
kind
of
load
them
the
same.
So
again
it's
this
config.
B
We
have
to
keep
an
eye
on
yeah,
but
let's
see
if
we
can
import
it
like
this
and
it
raw
transforms.
Let's
go
to
the
CI
variable
list
and
see
if
we
can
change
our
load
HTML
fixture
to
just
an
import
of
test
fixtures
pipeline
schedule,
edit.
A
And
I'm
gonna
call
it.
Oh,
it
doesn't
matter
right
or
could
I.
C
A
Doesn't
because
we're
not
referencing
okay,
statistic,
Capital
team,
David
testing,
so
that
it
doesn't
from
this
one
and
two
six
shoes
with
fixture
that
they
sent
as
well.
Nice.
B
Yeah
well
so
we
want
to
do
HTML.
Html
is
not
only
telling
it
where
to
look,
but
also
we're
using
the
raw
Transformer.
Yes,.
B
B
A
Yeah,
that's
good
all
right,
edit
with
variables
there
you
go
yeah.
B
Can
we
go
to
that
place
where
we
did
load
HTML
fixtures
and
that,
because
I
think
this
one
just
called
set
HTML
or
something?
Yes?
Yes,
yes,
so,
instead
of
load,
HTML
fixture,
we'll
just
set
HTML
fixture
to
the
content
that
we
imported.
B
Sorry
I
was
just
double
checking
that
we
had
that
function
on
line
28,
I
didn't
know
if
that
was
actually
a
thing
or
not.
So
we
do
that's
good.
We
can
go
back
towards.
We
can
go
back
to
our
spec
file
and
instead
of
load
HTML
fixture,
we'll
import
on
line
two.
B
Yeah
on
it
and
then
on
line
15
will
replace
r
or
we'll
add
into
the
new
line
instead
of
load
HTML
fixture
we'll
do
set
HTML
fixer
for
data
test.
Okay,.
A
And
just
like
that,
okay,
yeah
yeah
I'm
just
going
to
do
the
other
ones.
Do
this
thing
too.
C
B
B
B
So
I
think
I
think
what
we
have
stumbled
upon
is
a
is
an
epic
that
we
can
create
till
move
everything
away
from
using
load
HTML
fixture,
and
we
want
to
ultimately
remove
load
HTML
fixture
so
yeah.
That
makes
a
lot
of
sense.
That's
something
we
can.
We
can
crowdsource
to
contributors
in
front
end
and
stuff.
We
just
highlight
all
the
offenses,
and
maybe
we
can
add
something
that
we
don't.
A
B
The
reason
one
more
thing
just
to
highlight
is-
and
you
may
or
unlikely
are
already
aware
of
it,
but
the
I'd
be
I
I,
don't
believe
jest
can
follow
dependency
trees
unless
the
Imports
are
statically
at
the
top,
because
you
like
Dynamic
importing
and
stuff
I,
don't
think
it's
going
to
be
able
to
follow
those
and
that's
why
we
wouldn't
just
be
able
to
replace
the
implementation
of
load
HTML
fixture,
because
we
we
need
these
Imports
to
be
static
at
the
top
and
I
know
that
Jess
handles
that
specially
and
node
as
well.
A
Cool
yeah
that
makes
the
area
that
that
makes
sense.
It
opens
the
yeah
I'll
check
this
one
and
I
think
with
having
those
mappings.
If
we
were
to
engineer
those
mappings,
we
probably
do
something
even
without
the
place
I
mean
replacing,
it
would
be
great,
but
imagining
assuming
like
there's
another
kind
of
dynamic
loading,
I
think
we
could
in
in
Ruby
or
whatever
we
could
just
parse
those
you
know,
I
could
check
for
all
the
files
having
load
HTML
fixture
I
take.
What's
afterwards
and
I
just
run
the
specs
Associated.
A
B
B
A
Sounds
fantastic
yeah,
I'll,
just
yeah,
exactly
I'm
gonna,
stop
it
I'm,
just
gonna
put
the
things
and
then
you
can
come
and
oh.
B
Yeah
I
think
that
sounds
great
and
then,
if
you
want
to
create
a
Mr
of
this
one,
that
would
be
fun.
You
can
just
create
a
VMR.
The
changes
we
made,
except
for
one
thing,
I,
think
we
should
update,
which
is
the
Jess
config
yeah
this
one.
You
mentioned
yeah
right.
Instead
of
transforming
all
HTML
I'm
inclined
to
want
to
only
transform
test
fixture
HTML,
and
so
that
would
just
mean
below
this.
B
A
B
B
Now,
I'm
glad
this
is
an
interesting
problem.
Thanks
for
bringing
it
up,
yeah
hey
did
you
have
Miracle?
Did
you
have
something
that
you
were
hoping
to
work
on.
D
Actually,
finally
figured
out
the
issue
that
I
had
brought
up
and
what
it
was
that
Jesse
met
when
she
was
talking
about.
Is
this
the
right?
This
is
the
right
area.
Sorry
I
have
so
many
vs
code
windows,
open
I,
wasn't
sure
this
was
the
right
one.
D
What
Jesse
meant
when
she
was
talking
about
that
active
session
Ruben
file?
Oh.
C
D
Well,
my
cookie
now
works.
The
only
thing
that
I'm
working
on
is
my
final
test
and
I
haven't
really
wrote
that
many
R-Spec
requests
tests,
and
so
this
is
not
the
right
spice.
D
D
Okay,
you
know
what
let
me
stop
sharing
and
reopening
and
reopen
stuff
but
yeah.
My
issue
is
that
I,
don't
like
my
last
test:
I
need
to
expire
a
session
and
make
sure
my
cookie
has
been
deleted
with
the
session
expired,
but
I'm
not
quite
sure
how
to
do
that
in
a
request.
Spec.
C
B
B
B
That's
no,
no
you're
totally
fine.
If
you
want
to
share
your
whole
screen
too,
that's
that
works
as
well,
but
this
is
this
is
a
nice
font
too.
This
is
a
good
font
size.
D
Cool,
so
these
are
the
tests
that
I've
done
so
far.
Basically,
when
the
user
signs
in
the
cookies
there
when
they
signed
out
the.
C
D
And
then,
when
they
hit,
remember
me
the
cookie.
Is
there
the
one
that
I'm
struggling
with?
Is
this
one.
B
D
I've
tried
deleting
the
session
cookie
I've
tried
using
a
few
methods
like
reset
session
session
Inspire,
and
then
I
also
try
setting
up
a
helper
method
and
then
calling
it
here
and
for
whatever
reason,
I
think
it's.
The
session
expired.
My
cookies,
don't
delete
and
I
know
that
this
works
locally,
because
I've
been
sitting
here
watching
it
happen
for
a
few
hours.
Oh.
D
Yes,
but
also
I
think
that's
done
by
default,
so
when
so,
because
I
didn't
actually
set
an
expired
key.
A
C
A
Could
you
please
go
back
to
the
session
spec
quickly,
I?
So
how
do
you?
How
do
you
actually
so
first
of
all,
is
your
experience
in
that
domain?
I
just
did
a
lot
of
our
specs
so
happy
to
help
here.
How
do
you
see
me
so
then
the
session
expires
so
that
your
contacts
here,
it's
implicitly
done
right.
So
it's
as
you
said
it's
implicitly
when
you
do
that
post
on
user
session
path.
A
D
This
is
just
a
sign
in
the
user,
so
I
actually
have
a
session
running
and
then
I
wanted
to
expire
the
session
and
then
make
sure
the
cookie
was
deleted,
and
so
this
line
is
the
one
where
I
was
just
throwing
caution
to
the
win.
This
is
actually
like.
It's
set
when
you
sign
in
and
I
thought,
I
just
delete
this
cookie,
then
it'll
expire
session
and
my
cookie
will
no
longer
exist.
Okay,.
A
B
D
Yeah,
so
all
I
did
was
create
okay,
there
just
two
methods
that
set
an
unset
at
cookie
cool.
C
D
Then
what
I
finally
figured
out
is
that
device
used
important
to
start
sessions.
D
So
there's
two
methods
in
here
called
after
authentication,
so
rather
three
methods
after
identification
after
set
user
and
then
before
log
out
so
after
authentication,
is
where
the
remembering
variable
lives,
and
so,
if
I
have
my
cookie
set
here,
whenever
someone
clicks
that
remember
me
check,
then
my
cookie
will
be
set.
It
also
expires
with.
The
remember
me
variable.
D
The
only
thing
I
couldn't
quite
figure
out
is
how
to
directly
pull
the
expiration
time
from
the
remember
me
Cookie
into
my
cooking,
because
if
I
did
it
here,
it
blew
up
the
pipeline.
So
it
expected
me
to
test
something
here
and
I
was
expecting
me
to
test
the
method
here
and
I
didn't
have
a
method
and
then,
if
I
hold
the
the
the
sorry,
if
I
pull
the
inspiration
from
that
cookie
here,
they
just
didn't
line
up
at
the
same
time,
because
this
was
running
before
this.
D
C
C
D
Then
this
is
for
a
regular
garden,
and
so
after
you
sign
in
it
sets
your
user.
So
if
my
user
just
hits
the
signing
button,
then
my
cookie
is
set,
and
then
this
one
delete
everything
when
the
session
ends
or
when
you
log
out.
B
I
see
and
I
think
that
may
be
the
the
the
the
difference
or
I
think
I
think
my
my
brains
hooked
on
something.
B
D
D
No
so
I
have
this
active
session
or
active
session,
destroy
session
method
and
I
could
call
my
unset
active
user
cookie
inside
of
that
destroy
session
method.
Maybe
that
solves
all
of
my
problems.
B
B
You
know
last
as
long
as
the
session
when
it
expires
with
request
specs,
because
that's
really
interesting
because
and
looking
at
Warden
I
think
we
would
have
to
trigger
another
request,
but
the
time
would
have
to
be
after
the
expiration,
and
so
you
could
do
like
time
traveling
in
our
specs
and
so
then
we
can
trigger
another
request
and
the
request
then
like
that's
when
it
would
delete
stuff.
B
And
that
might
work,
but
then
the
other,
my
other
perspective
of
it,
is
like,
if
things
get
too
hard
to
test.
C
B
I
say
this:
I
say
this,
because
if
you
go
back
to
active
session
and
you've
talked
about
setting
these
cookies
and
you
didn't
have
to
give
it
an
expiration-
that's
kind
of
already
already
handled
for
you.
That
means
that
there's
not
really
a
line
of
code
where
a
bug
could
be
introduced
and
that's
really
like
the
tests
we
can
get.
We
can
get
from
the
test
perspective.
You
can
get
like
full
use
case
coverage,
but
it
really
means
like
you're
gonna,
probably
be
covering
multiple
lines
multiple
times.
B
The
other
way
of
put
thinking
about
it
is
like
is,
is
all
of
the
code
sufficiently
value
covered
and
because,
if
we
don't
have
to
test
the
framework
itself,
so
if
something
is
just
too
tough
to
test,
it's
I
wouldn't
be
afraid
to
just
tap
out
and
ask
a
maintainer
or
someone
and
be
like
I
can't
figure
this
out,
but
but
all
the
other
lines
are
covered.
So
we
should
be
good
okay,
but
that's
that's
totally.
Your
call,
but
I
do
think
it'd
be
fun
to
try
to
figure
it
out
yeah.
B
But
what
was
the
problem
that
you're
thinking
of
with
adding
a
call
to
unset
with
the
destroy
session.
D
D
See
I
did
that
when
I
intentionally
destroyed
this
it'll
be
called
explicitly
incident
implicitly.
B
Yeah,
so
when
you
hit
the
request,
specs
does
it
hit
these
like?
Is
it
does
these
initialize
I
have
no
idea,
do
these
initializer
modules
get
loaded
for
the
request,
spec.
D
In
a
weird
lines,
I,
let
me
see
here
so
like
if
I
use
this
method,
login
user,
it
doesn't
actually
always
doesn't
actually
meet
my
initializers
but
I
use
session
pass
or
users
actually
pass.
Then
it
does.
Oh.
B
B
Oh
and
there's
a
whole
okay,
all
right!
Okay,
can
you
go
back?
Let's
go
down
to
the
your
tests
again
that
you
added
I'm
one
of
curious
about
something.
So
we
already
have
where
the
user
signs
out.
Is
that
one
working
where
we
post
the
user
session
path?
Oh
then,
we
post
the
destroy
user.
Yes,
Scotty
gotta
got
it
got
it
cool
cool
all
right,
but
now
we're
here
just
saying:
okay,
have
we
just
completely
expired,
yeah?
Okay?
B
Could
we
and
I
think
the
way
to
test
this
would
be
to
time
travel?
Do
you
know
how
to
I?
Don't
remember
how
to
time
travel
in
rspec.
D
Okay,
then
I
did
it
in.
A
Travel
too
much
probably
would
be
the
one
I'm,
not
sure.
If
we
don't
use
time
Cup
right,
we
use
a
rails.
It
was
probably
for
that,
but
I
think
it's
traveled
to
travel
from
yeah.
One
of
those.
B
C
B
B
Okay,
you
could
do
travel
too
and
then
parentheses,
oh
man.
Why
is
why
is
Ruby,
so
you
could
do
one
I
know
from
now
Dot
from
now.
What
kind
of
language
is
this.
A
So
the
the
answer
is
actually
amazing.
I
find
it
amazing,
because
B
underscore
will
match
a
method.
So
Neil
is
is
going
to
be
the
nil
question.
Mark
method
you
could
be,
you
could
do
be
false,
be
true,
B
empty,
be
any
method
your
object
has.
It
will
be
really
the
underscore
yeah.
For
instance,
if
you
have
an
empty
method,
Define
you
can
say
BMT
or
it's
just
to
stand
more
in
English
yeah,
oh
okay,.
B
A
No,
what
was
wealth
I
think
wait,
wait
just
calling
it
like
this
and
then
but
then
you
would
have
to
reset
it
right.
Then
you
would
have
to
say
apparently
travel
back
and
I.
Think
if.
B
D
Not
exactly
exactly
I
try
to
just
just
setting
the
session
expert
or
the
session
date
to
be
like
in
three
weeks
and
then
the
expiration
should
have
updated.
Good
I
haven't
actually
used
like
the
travel
2
method.
A
A
Okay,
but
it's
just
so
we're
gonna,
say
yeah,
it
should
be
nil.
It's
not
yeah!
It's
up
to
you
and
I
think
also
a
note
on
this
on
debugging
on
buyback
I'm
wondering
if
it
would
even
wouldn't
even
work
in
the
initializer
in
your
word
in
that
RB.
If
you
wanted
I
think
you
could
also
put
because
I
suspect
that
the
initializer
is
run
when
you
boot
the
app
yes.
D
A
I
think
the
block
is
lazily
loaded
right,
so
it
should
be.
The
method
should
be
called
when
your
spec
is
called
and
I
suspect.
If
you
put
a
buyback
there,
it's
gonna
block
and
you
can
inspect
also
or
what
you
were,
what
you
were
curious
about
before
in
order
like.
Is
it
actually
going
there
or
is
it?
You
know
resetting
or
not
yeah
yeah,
just
to
sign
out.
B
D
D
B
Can
we
go
ahead
and
and
exit
and
continue
this
one
and
enter
just
to
double
check
that
we're
actually
changing
something
by
traveling?
Can
we
travel
to
zero
years
from
now
and
and
it's
traveling
even
my
question-
is:
is
traveling
even
changing
anything
at
all
like
we
can
comment
it
out
if
we
want
to
or
travel
to
one
second
from
now
or
something
like
that.
A
Or
call
time
dot
now
and
then
you
should
see
2024.
B
B
B
B
But
it's
not
it's!
So
not
yet
that's
strange
yeah,
that's
it
so
yeah!
That's
the
only
cookie.
Getting
back.
Is
this
about
gitlab
active
user?
Yes,.
D
Maybe
maybe
it
explicitly
call
this
where's
destroy
session.
C
B
Well,
right
now,
we're
not
in
our
tests
we're
not
just
we're
not
destroying
any
sessions
like
nothing,
no
right!
Nothing
no
session
should
be
destroyed
in
our
tests.
Yet.
D
B
B
A
A
B
Maybe
it's
because
some
of
these
start
with
the
underscore
maybe
like
that
causes
them
to
be
hidden
when
we
try
to
do
just
regular
cookies.
D
D
If
I,
let's
see
ER
well
again,.
B
Do
you
do
you
want
to
try?
Oh,
what
was
I
thinking.
B
C
C
D
Yeah
I
guess
last
dish.
Effort
was.
C
D
B
Is
it
a
if
it's
in
the
same
model
doesn't
need
the
I,
don't
I?
Don't
this
I
have
no
idea
about
Ruby?
Does
it
need
the
active
session
name,
or
can
you
just
call
it
without
the
accession
name,
or
do
you
have
to
do
self
or
something
I
have
no
idea.
C
A
B
B
C
D
B
D
B
Right
I
think
the
I
think
the
error
I
think
they
are.
If
you
go
back
to
the
act
of
Session
One.
B
I
think
I
think
it
wasn't
about
this
method.
I
think
it
was
about
on
line
112.
D
A
D
C
A
I
got
used
to
it,
but
it's
it's!
It's
completely.
Unintuitive
yeah
I
see
what
you're
saying
as
you're
saying:
okay,.
B
Here
we
go,
this:
is
it
yeah
this?
Is
it.
B
I
think
it
might
be
really
really
hard
to
figure
this
out
and
I'm
inclined
to
you
know
what
you
just
added
of
like.
Oh
yeah,
we're
hooking
into
the
destroy
session
method,
which
is
the
single
source
of
Truth,
for
whenever
we
need
to
destroy
a
session.
We're
gonna
get
rid
of
this
thing
like
oh,
that
sounds
like
yeah.
You
can
just
cover
that
with
the
unit
tests.
We
don't
necessarily
need
a
more
integrated
test
for
that.