►
Description
In this session we continue with fixing the autocomplete cancel with "ESC" by addressing some testing concerns and fixing the issue for other types of autocomplete.
MR: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/91829
A
Hello,
everybody
to
this
week's
pairing
session,
it's
the
15th
of
july,
and
we
are
kind
of
picking
up
where
we
stopped
last
week,
so
for
everybody
who
has
not
been
around
to
quickly
try
to
try
to
show
you
what
I'm
currently
trying
to
fix
in
I'll
be
showing
this
on
my
branch,
but
on
on
gitlab.com
or
in
the
in
the
main
branch.
A
This
will
close
it,
and
if
I
now
hit
the
escape
key
one
more
time,
this
model
will
appear
asking
me
to
if
I
really
want
to
do
this
or
continue
editing
on
production.
This
is
currently
not
working
and
not
working
means.
If.
B
A
The
skp
once
the
the
a2
model
will
be
closed
and
this
the
continue
editing
model
will
be
shown
as
well,
which
basically
leads
to
a
lot
of
frustration
of
users.
Just
hitting
the
the
add
button,
because
you
want
to
mention
somebody,
then
you
don't
you're
gonna,
be
hitting
the
escape
key
and
you'll
be
ending
up
in
here,
which
is
where
you
didn't
want
to
go.
So
this
is
this
is
what
I'm
currently
fixing.
A
I
was
hoping
for
an
easier
fix,
but
it
is
fair
to
say
that
we
are
dealing
with
some
legacy
code
base
over
here.
So
this
is
what
is
rendering
this
menu
is
a
jquery
library
that
we
forked
many
many
moons
ago
and
that
we
are
still
dependent
on
with
the
current
solution
I'm
looking
at.
I
did
not.
A
A
What
this
thing
is
doing,
the
gfm
autocomplete
is
basically
the
file.
Let
me
show
you
this
in
my
editor:
it's
basically
the
file
where
the
key
event
listeners
that
will
actually
then
pop
up
the
the
model,
and
what
do
I
search
for
add
to.
B
A
Nice
yeah,
so
this
is
basically
the
the
function
call
to
the
to
the
jquery
library,
and
this
is
where
the
ready
event
gets:
initialized
the
key
listener.
So
so
far
so
good.
What
we
figured
out
in
the
last
session
is
that
the
the
striker
recovery
is
actually
smart
enough,
that
it
will
fire
two
events,
which
is
gonna,
be
a
hidden
event
and
a
shown
event,
and
so
this
is.
A
This
was
working
perfectly
fine
for
the
emoji
for
the
emoji
model,
and
but
it
turns
out
it
was
not
for
all
of
the
others.
Paul.
Have
you
seen
the
video
I
put
in
this
channel
and
there
was
that
took
me.
It
took
me
about
half
a
day
to
discover,
because
I
just
couldn't
figure
out
why
it
would
not
work
for
any
other
and
it
turns
out.
There
is
a
thing
you
can
give.
It
is
an
alias.
A
I
haven't
looked
into
it
too
deeply
why
we
are
giving
those
kind
of
functions
or
while
we
are
passing
aliases.
I
know
that
these
are
also
used
to
kind
of
identify
our
tests.
So
one
more
thing
that
I
am
not
keen
on
touching,
but
as
I
figured
that
whenever
you're
gonna
be
you're
gonna
be
giving
this
thing
an
alias
and
the
event
name,
the
library
will
actually
fire
fire
will
change
and
it
will
change
to.
A
Let
me
quickly
find
it
yep.
It
will
change
from
hidden
dot,
a2
to
hidden
dash,
alias
dot
attu,
which,
unfortunately,
is
not
documented
anyway,
at
least
I
couldn't
find
it
so
that
was
that
was
a
lucky
shot
to
to
figure
that
out,
but
glad
we're
having
it
so
where
I'm
currently
at
or
where
are
my
questions?
The
good
thing
is.
This
is
all
working
as
expected.
Now
the
dskp
does
does
what
it
should
for
kinda
all
the
instances.
A
So
my
two
open
questions
on
this
r,
as
I
figured
so
for
the
ce
version
of
this
all,
it's
perfectly
fine.
I
came
up
with
some.
A
A
I
actually
are
actually
doing
this
pretty
good
super
super
keen
on
hearing
your
feedback
about,
but
this
is
what
I
thought
about
how
to
best
test
this
like
this
is
the
test
for
if
the
the
model
actually
appears
like
the
continue
editing
model
and
this
iterates
through
all
of
the
the
key
symbols
and
then
hitting
the
escape
or
fake,
hitting
the
escape
key
and
then
making
sure
that
this
model
is
not
rendered
so
that
should
that
should
be
good
to
go
so
fun
part
of
this
or
the
the
open
part
is
we
do
have.
A
A
A
The
problem
with
the
the
the
unit
test
I
came
up
for
the
integration
test
I
came
up
for
the
ee
version
is
that
I
am
basically
doing
the
exact
same
thing
in
in
ee.
A
I
am
stubbing
the
licensed
feature,
epics
true,
first
problem,
I'm
having
here
it
kind
of
doesn't
make
sense
that
this
feature
is
called
epics,
but
this
is
just
a
guess
from
my
side
at
this
point
and
if
I
run
this
test
with
the
webdriver
enables
and
a
debugger.
So
as
we
can
see
in
here,
this
is
actually
what
is
happening
in
the
test.
Ee
colon
would
open
really
nicely
if
I
hit
an
ampersand
there's
just
no
menu
opening
up,
so
that
is
kind
of
my
main
problem.
How
do
I?
A
C
B
B
C
Okay,
yeah,
I
think
I
think
that
it
has
to
do
with
either
it
doesn't
have
any
epics
or
the
feature.
Isn't
the
right
feature
or
there's
more
features
yeah.
That
sounds
right.
So,
when
I'm
looking
at
the
way
these
tests
are
done.
These
are
really
really
good
tests
but
feature
specs
are
expensive.
C
A
It
it
surely,
is
not
fast.
That's
for
sure
this
will
not
speed
up
our
pipeline.
C
A
My
gosh
wow
okay,
so
just
for
you
like
this
file-
oh
it's
not
too
bad.
Actually
e
is
pretty
small,
so
yeah.
These
are
the
existing
unit.
Tests
on
the
left.
C
I'd
love
to
hear
what
anand,
chad
and
yannick
would
you
think
I'd
be
fine
if
we
had
like
just
a
couple
of
the
feature
spec
permutations,
but
then
then
this
unit
test
level,
let's
just
mock
out
that
function
and
just
assert
that
it
was
called
just
assert
that
we
added
that
set
up
the
on
off
listeners
for
these
functions.
A
C
A
A
No,
the
only
thing
we
added-
I
can
probably
best
show
you
this
in
diff.
A
I
refactored
this
in
the
in
the
current
version
of
it
quite
a
bit,
but
the
setup
like
like
this,
I
refected
this
to
use
the
c1
so
never
mind
this,
but
the
the
setup
lifecycle
method.
This
is
basically
everything
it
does,
or
everything
that
that
was
added.
C
A
Or
when
does
it
get
called?
It
gets
cold
because
we
are
dealing
here-
and
I
haven't
been
touching
stuff
like
this-
for
a
while,
but
with
good,
good
old,
good
old
class
architecture.
A
A
C
C
149
is
really
interesting
because
you
saw
that
there
were
aliases
being
attached
which
changed
the
names
of
these
events,
but
149
were
not
worrying
about
aliases.
A
A
B
B
C
A
A
Exactly
aliases,
I
yeah,
I
defined
them
as
constants
above
here,
so
we
get
a
single
source
of
truth,
and
there
is
also
an
undefined
in
here
which
is
representing
the
default
event.
C
C
A
I
think
well
well,
you'll
be
only
adding
them
them
once
per
load
that
that
will
be
my
expectation,
if
not
we're
speaking
about
a
buck.
But
that's
that's
what
I'm
like
this
will
only
like
this
method
will
only
be
be
called
once
per
per
page
load
we,
but
we
wanna.
If
we
load
it,
we
wanna
register
all
of
the
event
listeners
for
all
of
the
aliases,
because
you
need
all
those
key
signals
to
be
ready.
C
A
How's
the
enable
map
work-
and
I
haven't
really
looked
into
this-
well,
I
don't
know
but
steve
default
autocomplete
conflict.
So
where
is
this
coming
from.
C
It's
actually
not
necessarily
a
constant.
It's
a
it's
an
instance
variable
defaults
to
that,
but
that's
right,
the
thing
being
when
we
call
setup
if
you
go
up
to
our
setup,
hide
and
show,
I
think
we'll
want
to
reconcile
the
aliases
with
the
enabled
map.
Ideally.
C
C
C
So
to
have
when
we're
setting
up
the
event
listeners
should
we
respect
the
enabled
list?
Is
that
what
you're
saying.
A
C
You
you
bring
up
the
scary,
I'm
hoping
that
it
doesn't
change
after
page
load
because
I'm
pretty
sure
we're
not.
None
of
this
is
reactive
as
one
would
hope,
but
I
that
would
be
ideal.
C
A
Okay,
he's
gone,
he's
scared.
It
scared
him
away,
I'm
afraid
anyhow
yeah
we
can.
We
can
do
it
like
this
and
there's
one
tiny,
tiny
bit
which
I'm
not
a
particular
fan
of,
and
just
it
might
be
ridiculous.
But
the
thing
is,
this
will
add
more
complexity
to
the
show
and
height
helper
function,
given
that
we
don't
really
have
a
chance
or
opportunity
to
test
this
thing,
I
feel
a
little
mixed
about
making
this
more
complicated
but
and.
A
Fair
enough,
we
absolutely
could
okay
yeah
sweet,
let's,
let's,
let's
keep
that
in
mind.
That's
a
that's
a
good
point.
C
C
So
I
really
like
the
feature:
specs.
That's
a
really
really
great
thing
that
we've
done.
I
think
I
think
it's
worth
unit
testing
this
function
that
we're
exporting
yeah,
so
so
when
we
given
the
challenge
here
is
that
this
function
doesn't
have
access
to
that
instance
variable
the
enabled
map.
C
We
have
a
function,
that's
something
like
get
enabled
aliases
and
we
just
use
that
as
the
second
argument
to
show
and
hide
helper.
You
know
that
way.
We
don't
really
have
to
change,
show
and
hide
helper.
It's
just
whatever
the
aliases
are
shown
height.
Helper
doesn't
have
to
worry
about
that.
Rather
than
having
one
big
function,
you
have
two
two
smaller
functions.
A
I'm
kind
of
leaning
towards
the
passing
through,
since
we
don't
have
too
many
steps,
but
if
that's
a
no-no
for
you,
then
you're.
Okay
with
that.
C
I'm
I
think,
I'm
fine
as
long
as
it
stays
it
stays
simple.
We
can.
We
don't
have
to
pass
it
to
set
up
lifecycle
because
it's
it's
the
instance
variable
in
class.
So
we
can
just
do
fair
point.
A
We
can
just
access
it.
Basically,
this
is
all
we
need
to
do
correct.
Yes,
yeah
yeah,
yeah
wow.
I
haven't
touched
classes
in
a
long
long
time,
but
good
good
stuff.
C
So
if
we
were
gonna
do
that
this
isn't
gonna,
be
your
favorite
thing.
If
we
were
gonna
do
that,
we
would
potentially,
instead
of
having
an
array
of
aliases
on
line
25,
hey
james,
we
would
have
an
object
of
aliases
from
the
enable
key
to
the
alias.
A
A
They're,
definitely
not
like
I
just
checked,
there's
members
and
there's
users,
which
is
the
same
thing,
so
they
probably.
A
Yeah
yeah
we
would
have
to,
we
would
have
to
change
the
aliases
and
I'm
not
a
fan
of
this
very
much.
Not
a
fan.
C
A
I'll
definitely
be
having
a
hard
time
going
doing
this
on
my
own.
So
what
are
we
having
the?
Let
me,
let
me
lock
this
totally
much
easier.
C
A
Did
you
try
removing
them?
No,
I
didn't
try
removing
them,
but
what
I
checked
is
when
I've
been
searching
for
those
aliases
and
I
did
get
a
lot
of
matches
in
their
specs.
So
I.
B
Okay,
so
I
think
we're
getting
sidetracked
with
the
performance,
optimization
that
probably
doesn't
even
involve
belonging
to
smr
apologies,
paul.
C
B
C
C
C
A
That's
good,
I'm
taking
this
away
with
me
I'll
I'll
think
about
this.
Maybe
just
all
this
will
just
make
things
better.
Okay!
So
let's
go
back
to
the
ee
spec
of
this.
So.
B
A
If
I
understood
you
correctly
well,
you
said
chat
is
like
this
justifies
frozen
for
an
ee
test,
and
I
do
agree,
but
for
the
sake
of
performance,
once
more,
there's
probably
no
need
to
test
it
for
all
of
the
occurrences.
Yes,.
A
Okay,
so
we
are
back
to
our
very
initial
problem,
and
that
is
basically
the
the
ampersand
in
here
is
doing
nothing.
C
C
Probably
not,
but
we
definitely
want
to
look
up
where
we're
creating.
I
would
try
to
find
another
task
where
we
create
epics,
because
that's
what
we'll
want
we'll
need
to
do.
C
A
Should
we
just
re-run
it
because
it
will
take
a
take
a
second?
What.
C
No,
and
that
means
a
group.
Yes
yeah,
epic,
certain
things,
and
so
we
probably
want
the
project
to
be
under
the
group
as
well.
C
B
C
B
I
was
trying
to
look
at
this
and
find
that,
like
a
flag
that
enables
epics,
I
like
that,
it
looks
like
for
the
the
feature
capability
is
called
epics,
but
it
doesn't
appear
to
be
enabled
anywhere,
which
makes
me
think,
like
maybe
all
of
the
ee
stuff
is
just
enabled
somewhere
in
the
the
helper.
A
B
I
missed
anything
but
leads
me
back
to
paul's
thought
that
maybe
there's
just
no
epics
that
exist
to
be
shown.
A
C
A
These
boots
open
up
because
the
source
branch
monster
is
missing
from
project.
Wait,
wait
what.
A
I
don't
think
so
because
let
me
double
check
that.
Oh,
we
need
to
speak
about
this
as
well,
because
I
haven't
this.
This
should
be
in
place
like
the
webpack
patch
currently,
so
this
is.
B
A
So
that
should
be
okay,
so
I
think
there
is
something
wrong
with
those
those
couple
of
lines.
C
A
I
would
be
if
we
would.
I
would
really
expect
a
different
error,
because
what
we
just
saw
on
the
on
the
browser
was
basically
like
it
couldn't
render
an
mr
and
you're
not
going
to
be
breaking
this
50g
fm
or
the
complete
file,
or
are
you?
A
A
I
I
feel
like
like
we
can,
let's,
let's
quickly
look
into
this,
I
feel
like
we
are
set
setting
up
a
scenario
that
can't
that
is
causing
some
issues.
So
we
are
creating
a
group
which
is
public
project
group
group,
so
that
should
be
okay,
merch
request.
C
Let
me
you'll
need
to
you'll
need
to
do
let
exclamation
mark
or
let
it
be
for
the
epic.
C
Do
I
okay,
because
otherwise
the
things
are
only
lazily
initialized
when
you
reference
them
and
we
don't
actually
reference
that.
A
Today,
I
don't
okay,
so
just
like
I
did,
this
should
be
fun.
That
should
be
fine.
Okay,
let's
give
it
a
shot.
Well,
that
was
weird
what
was
with
the
error.
A
Was
weird:
let's,
let's
see
if
we
can
reproduce
make
sure
to
to
make
a
screenshot
this
time,
while
this
is
loading
paul
another
one
for
you
like
the
the
what
we've
been
encountering
in
a
in
the
last
pairing
session
regarding
the
d.a
sinkness
like
we
need
to
speak
about
what
what
has
I?
I
didn't
fully
understand
the
issue
you
fired
regarding
the
the
missing
things
indeed,
and.
C
It
is,
it
was
just
okay
on
14.9
and
so
okay,
what's
the
change,
the
way
we
did
merges,
which,
as
a
side
effect
fixed.
C
Fixed
that
issue-
and
it
was
really
edge
case
issue,
but
it
resulted
in
data.
What
is
this?
Oh
okay,
we
haven't
initialized
the
repository,
that's
it
yes!
Yes,
just
yes,
you're
moving
for
I'm
back
in
our
spec.
We
have
to
create
the
project
and
then
do
like
colon
repository
or
something.
So
we
have
project
group,
but
we
also
have
to
do
like
repository.
C
B
A
Yeah
project.
C
A
Yeah
going
going
back
to
the
2d,
get
it
get
bug,
I
don't
know
implementation
twerk
whatever
it
was,
but
I
have
to
admit
it
scared
me
a
little
like
the
issue
description
you
put
in
there,
which
basically
said
there
was
an
mr
and
the
changes
in
there
which
are
not
shown
in
the
diff
you'll
be
like
well.
If
there's
one
thing,
we
really
want
to
get
right.
That's
probably.
C
B
C
C
A
Have
some
js
issue,
but
that
doesn't
matter
like
that's
not
biggie
and
the
good
thing
is.
This
is
working
and.
A
Yeah,
it
does
so
hitting
it
once.
Oh
one
more
time,
opening
the
menu
hitting
it
once
there
we
go
hitting
it
another
time.
This
is
just
just
working
as
expected,
so
that
is
the
easy
test.
Everybody
fantastic
thanks.
A
lot
for
jumping
in
here.
B
Good
job,
it
was
a
good
session,
even
though
I
missed
half
of
it.
I
had
to
put
my
phone
like
in
the
kitchen
window
to
get
my
hot
spot
to
work.
A
Good
stuff,
all
the
good
stuff,
so,
let's,
let's
quickly
before
we
wrap
this
up,
let's
quickly,
look
at
the
difference,
see
what
we
actually
changed
and
maybe
some
some
to
do
so.
I
will
just
revert
this
far.
I'm
joking
paul
I'll,
see
I'll
see
what
I'll
be
doing
with
this,
but
a
lot
of
a
lot
of
input
on
potential
optimizations.
C
So
can
I
share
some
thoughts
about
the
different
approach
of
having
one
function
that
sets
up
all
the
listeners
versus
a
function.
You
call
every
time
you
need
the
listener
set
up.
C
C
You
don't
want
to
feature
test
all
the
code
paths.
It
would
be
nice
to
do
some
sort
of
assertion
on
the
unit
test
level
that
we
set
up
this
and
we-
and
we
called
this
function,
to
set
this
thing
up
with
it.
We
set
this
thing
up.
We
called
this
function.
Setting
up
that
would
be
nice
that
need
isn't
totally
there.
If
we
have
this
one
function,
we
called
set
everything
up
because
from
the
coverage
perspective,
like
you've,
already
passed
that
those
lines
theoretically.
B
C
I
think
that
I
think
we
can
have
one
yeah.
I
think
we
could
do
that.
I
like
that
idea
rather
yeah.
I
I
think
I'd
be
great
of
just
asserting
that
all
of
these
events
were
set
up.
C
So
we
can
add
a
I'm
pretty
sure
we
can
add
a
spy
on
to
the
on.
A
But
just
to
get
this
right,
what
they're,
currently
speaking
about,
would
be
an
approach
where
we
would
call
one
function.
Fourth:
from,
for
example,
the
set
of
emoji
method,
yeah,
the
not
the
d1
size
fits
all
thingy,
and
we
would
then
absolutely
get
rid
of
the
the
method
of
the
like
this
thing.
B
It
reduces
the
coupling
between
these
different
types
of
things.
This
largely
non-cohesive
class
is
doing.
C
Yeah
and
what
chad
was
talking
about
too,
with
just
testing
and
out
of
like,
let's
just
start
it
and
test
what
this
thing's
been
called
with.
Technically
like
that
test,
isn't
coupled
to
either
way
we
did
it.
So
that's!
That's
a
nice
one
too
we're
not
coupled
to
the
implementation.
B
C
C
A
I
don't
know,
let
me
let
me
check
one
thing
like
I
really,
the
more
think
about
it,
the
better.
I
like
this
approach,
because
if
we
are
calling
the
the
show
and
height
helper
or
effective
version
of
this
actually
from,
for
example,
the
set
of
members
function,
we
will
have
this
alias
right
at
hand,
so
just
kind
of
from
a
logical
point
of
view.
This
does
make
more
sense.
Very
last
thing
I'll
be
doing.
A
A
A
Like
it
probably
like
it
would
yeah,
I
guess
I'm
not.
C
A
C
That's
wise,
yeah
don't
and
feel
free
to
not
listen
to
me.
A
We'll
we'll
do
so
and
we'll
see
I'm
a
little,
what
I'm
a
little
concerned
about,
as
I
just
mentioned
like
as
we
are
not
having
any
of
those
tests
or
how
do
I
put
this
the
tests
on
the
right,
I
consider
legacy
as
well,
and
they
are
working
and
green,
and
this
is
fantastic,
but
I
am
not
so
keen
on
touching
the
video
so.
C
So
setup
is
called
and
setup
is
what
actually
later
calls
all
of
these
ones.
So
you
see
how
they're
calling
setup
labels
true.
C
Why
not
exactly,
let's
do
it
all
right?
Let's
go
to
the
let's:
go
real
fast,
all
right!
Let's
go
to
the
bottom.
We
can
do
this
all
right.
Let's
just
create
a
new
describe.
C
Just
like
that
yeah
it
looks
great
and
we'll
call
it
whatever
I'll
just
call
it
pairing
boom
yep
before
each
was
steal,
the
one
that
was
for
labels
had
where
they
set
up
a
text
area
and
stuff
like
that.
C
C
We
can
get
rid
of
what's
data
sources.
Where
did
that
come
from.
C
C
A
Kind
of
like
a
oh,
no
oopsie
kind
of
like
that.
C
C
Very
well
outside
the
before
each
we
can
assume.
Let's
go
we'll
see
you
james
and
yeah.
It's
it's
close
to
time.
Getting
a
hop
off
feel
free
to
hop
off.
We'll
need
to
do
the
text
the
jquery
selector
inside
the
before
each,
but
we'll
just
declare
it
outside.
C
C
Yep,
I
will
need
to
do
it
after
we
set
up
after
the
auto
complete
and
before
the
setup,
yep
yep,
yep
yep,
and
then,
let's,
let's
get
rid
of
the
second
argument
to
set
up
because
then
we'll
use
the
default
where
everything
gets
set
up.
C
A
Oh
okay,
so
we
still
need
where
we
put
the
the
mock
function
in
the
before
each
as
well.
A
Doesn't
make
sense,
though,
so
then
we
would
do
something
like
text
area
dot
on.
C
Not
square
spy
on
yeah
you
just
you
got
to
use
this
global
object.
Jess,
yep,
yep,
just
a
spot
on
texture.
A
C
A
Gotcha,
oh
okay,
but
you
you
would
usually
put
this
in
a
vowel.
Wouldn't
we.
C
Well,
it
mutates
actually
the
function,
so
we
could
just
keep
referencing
the
function
like
we
are
in
line
904..
We
can
get
a
value
value
out
of
it,
but
okay.
C
C
A
Oh,
oh,
but
it
read
something
given
ali
is
that
for
each
is
not
a
function.
Yeah
yeah.
C
C
C
Oh
yeah,
let's
just
pass
aliases
in
there
yeah
we
weren't
using
yeah
yeah
yeah
yeah.
That's
that's
what
we
need
it'll
still
fail,
because
it's
not
going
to
equal
an
empty
ray,
but
we'll
get
the
results.
A
Yeah
I'm
having
what
I'm
having
a
little
bit
of
a
hard
time
with,
is
actually
thinking
about
what
we
are
testing
here
on
the
right.
So
we
are
setting
this
thing
up
with
the
default
enabled
map,
so
the
next
thing
to
do
would
be
check
in.
If
all
of
these
event
listeners
are
set
correct
and
then
in
best
there
will
be
one
test
and
then,
in
best
case
pass
this
thing
one
more
enabled
map
with
maybe
all
of
the
features
false
and
we'll
see.
A
C
C
Our
calls
will
be
different
so
that
that
is
a
wise
thing
to
do.
C
C
So
we
called
this
was.
B
C
A
Eight
ninety
five
gotcha
okay,
so
just
like
here,
no
flipped
before
this
fight,
okay,
yeah.
C
Oh
yes,
yes,
no,
I
know
what's
going
on,
go
ahead,
but
all
right,
what's
going
on.
C
I
was
afraid
of
this
if
you
go
to
while
this
is
running,
if
you
go
to
the
setup
function:
yeah,
okay,
still,
pausing
yeah!
If
you
go
to
the
setup
function,.
C
A
C
No,
so
the
spy
on
isn't
the
way
we
want
to
do
this.
I
don't
know
I'll
have
to
I'll.
I
can
we
don't
have
to
dive
into
it
right
now,
because
we're
out
of
time
but
I'll
research.
How
do
we
want
to
spy
that
a
jquery
event
was
set
up?
C
We
can't
just
use
spy
on
naively,
like
I
was
suggesting,
because
that's
that
one
jquery
rapper
but
man
jquery
rappers,
are
a
dime
a
dozen
and
we're
rapping
and
unwrapping
all
sorts
of
things.
So
we
gotta,
we
gotta
figure
out
how
to
get
the
spy
working.
A
Awesome
so
looking
forward
to
this
so
much
anyhow,
this
was
a
lot
of
progress
being
made
today,
thanks
so
much
for
everybody,
yeah.