►
Description
**Result**
https://gitlab.com/gitlab-org/gitlab/-/merge_requests/29796
**Highlights:**
- 3:20 We dive into updating our codemod to support renaming import aliases
- 11:30 We fix our issue we ran into while trying to update the codemod
- 17:30 We run into an issue with a spec that's testing the behavior of debounce but debounce is mocked in our environment
- 26:30 End of discussing best way to test debounce in this environment, but opt for moving on
- 29:00 We run into a spec that is outdated and references a non-existent prop
- 42:00 We run into a spec that tests an unused spec
A
Yes,
okay,
welcome
to
justice,
Exodus
justice,
edition
3500
I,
don't
know
we're
going
to
move
a
few
spec
files
and,
as
you
might
know,
from
previous
recordings-
or
in
case
you
don't
know,
we
have
J's
code
shift
code
mod.
That
does
a
lot
of
the
work
for
us
and
Justin.
Who
isn't
here,
you
know
said:
let's
move
all
of
view
shared,
so
he
did
a
thing
that
we
need
to
do
if
I.
Remember
correctly,
we
need
to
let
me
increase
the
size
here
a
little
bit.
A
A
A
D
C
C
C
A
C
C
A
A
A
A
A
I
mean
this
is
actually
you
know,
Facebook
develop
this
and
I.
Think
they've
developed
this
because
of
react
because
I
think
they
have
a
pretty
cool
standard
in
their
team.
They
say
if
the
react
team
does
a
breaking
change.
The
react
team
is
responsible
of
fixing
the
breaking
change
across
all
of
the
Facebook
codebase
right
and
so
because
a
lot
of
often
it's
like
you
changed
the
order
of
arguments
and
a
function
or
whatever
and
then
people
you
know
start.
C
A
C
A
That
is
interesting,
yeah,
okay,
so
I'm
just
going
to
put
this
in
here
and
then
we
should
have
the
part
of
the
ask.
You
know
it's
an
import
declaration
yeah
where
the
source
is
a
little
row
and
we
want
to
replace
the
value
spec
help
us
just
help
us
right,
yep,
that's
what
we
want
to
do
doesn't
sound
too
hard,
no
require.
C
A
C
C
B
B
A
C
F
C
A
C
C
A
C
Alright,
which
I
shouldn't
can't
try
something
a
change
to
our
code
to
our
code
yeah.
If
we
go
back
to
the
helpers
employed
path,
yeah
I'm,
sorry
I
meant
that
coaches
the
jail
Jess.
It
is
code,
mine,
yes,
and
we
go
to
the
helpers
import
path.
Yes,
okay,
let's
just
console.log
that
we
can
get
the
the
right
value
out.
If
we
do
console.log
X
dot
value,
that
source.
B
C
C
It
worked
brilliant,
okay,
yeah,
so
that
was
so
one.
The
one
thing,
I
guess
to
keep
in
mind
with
doing
this
ast
stuff
is
everything's
wrapped
like.
If
you've
looked
at
that
tree
you
you
have
a
reference
to
the
node
which
you
can
get
like
the
parent
from,
but
if
I
also
want
to
get
that
individual
item
in
the
node
I
have
to
do
that
value,
and
so
you
have
to
it
to
replace
something
you
could
do
no
diaper
place
with.
G
A
C
B
A
A
A
A
A
A
19
failed,
5,
France
I
mean
or
we
moved
last
5
content.
Viewer
project
select
our
content
view
on
projects
vectors
so
content
via
content,
viewers
working
so
hey.
We
migrate
it
to
first
folder
and
project
our
project
selector,
which
one
was
it
project
list
item
list
item
right
so
and
there
is
no
project
select
on
it
yeah.
Yet
so,
let's
focus
on
the
one
that
might
be
not
failing
copy
from
yeah
copy.
B
A
C
C
And
we
don't
want
to-
and
this
is
another
problem
with
our
third
party
eco
chef
thing
when
it
realizes.
Oh,
you
want
to
fake
stuff.
Well,
we're
gonna
be
and
we're
gonna
rely
it
on
the
after
each,
but
we
don't
need
that.
We
always
want
to
fake.
Oh.
D
A
Wait
40
times
no,
no,
this
one
here
right,
74
yeah!
We
expected
and
it's
actually
testing
the
time
all
right
like
entering
stuff
ten
times
and
see
if
the
debounce
works
right,
yeah,
initially.
C
A
A
B
C
One
I
think
we're
doing
this
one
one
idea
to
so
I,
we're
kind
of
already
and
and
we're
kind
of
are
already
asserting
that
this
is
a
function
because
we're
it's
emitted,
something
like
the
behavior
is
happening,
so
we
don't
necessarily
need
to
assert.
Maybe
the
the
types
I
kind
of
would
want
to
just
assert.
Did
we
pass
the
right
arguments
like?
Are
we
balancing
with
the
right
value-
and
one
thing
we
could
do?
Is
we
can
return
a
function?
C
But,
let's
add
up
like
a
like
a
let's
add
like
a
adjust,
the
bounce
args
to
that
function
we
have
turned,
and
then
we
can
expect
on
that
of,
like
hey,
did
I
pass
the
right
to
bounce
args
to
this
function
or
not,
and
it's
we're
getting
hyper
unit
test
focus
right
now,
but
that's
kind
of
the
world
were
in
right
now.
So
it's
okay.
C
A
C
Yeah
go
ahead.
What
we
would
do
we
would
ask,
we
would
access
that
function
itself,
that's
the
bounce
and
we
would
do
something
like
hey
I
expect
this
function,
dots,
you
know
underscore
just
the
bounce
Mach
2
equal
whatever,
and
that
asserts
we
wrapped
it
into
bounce,
and
you
know
we
gave
it
this
value
now.
Some
things
that
are
this
isn't
gonna
work
all
the
time,
because
sometimes
we,
the
balance,
a
function
and
the
function
isn't
publicly
accessible.
I,
don't
I,
don't
have
a
great
solution
for
now
that
we've
mocked
the
bouncing
globally.
D
A
C
H
Saying
that
begin
really
believes
that
we
are
adding
close
to
zero
value
by
asserting
that
some
method
is
debounce
it.
It's
not
a
part
of
public
API
of
the
component
at
the
moment,
and
it
should
never
be
so
basically,
I
believe
that
at
least
at
least
we
have
was
the
best
of
things
we
could
assert
till
we
have.
Some
improvement
in
motor
implementation
is
to
make
sure
that
debounce
with
calls
with
some
function
and
proper
bounce
time,
yeah.
H
H
Yeah
this
is
this:
one
will
provide
us
the
bounce
from
market
instance,
yes
nah
yep,
but
we
still
need
to
return
a
proper
mock
from
the
deep
bowels
mock
right.
Now
we
have
a
returning
fake
function.
It
will
not
have
the
actual
working
functionality.
We
should
return
something
like
just
dot
a
fan,
so
we
could
so
it
will
track
calls
the.
B
C
C
Know-
and
it's
it's
really-
it
is
a
weird
problem
and
I.
This
hurts
like
and
I
know
that
it
probably
hurts
you
as
well.
I
appreciate
Chinamen
end
of
like
we're
no
longer
testing
behavior
of
component
we're
just
testing
we're
going
like
supermom
customer
which,
when
it
comes
to
the
balance
right
now
and
I'm,
not
a
huge
fan
of
it
and
I'm
really
up
for
a
better
solution
here.
H
Man
yeah,
basically,
what
I
see
in
the
bounce
dodgiest
code
of
largest
at
the
edge
as
doing
a
very,
very
funny
trick,
they're
putting
the
set
timeout
timer
in
the
nest.
Next
requestanimationframe
call.
Probably
they
have
a
really
good
reasoning
for
do
that.
I
have
no
idea
actually.
So,
basically,
that's
alright.
H
H
C
Yeah
and
that's
that's
not,
and
that's
not
awesome,
so
I
would
because
we
want
to.
We
want
to
I'm
fine
if
we
want
to
just
for
the
sake
of
moving
on
and
in
the
merger
class.
We
can
maybe
resolve
this
in
the
merger
class.
If
we
want
to
remove
it
and
then
figure
out,
how
do
we
want
to
handle
that
bit
in
the
future?
We
want
to
make
sure
we
haven't
lost
any
test
coverage
that
this
was
also
testing
that
something
was
emitted.
We
want
to
make
sure
we
still
doing
that
yeah
we're
doing
that.
C
A
A
Makes
sense,
sorry,
never
mind
mock
implementation.
We
handled
green
checks
to
second
alright
yeah
yeah
I
was
just
wondering
why
we're
mocking
VM
emit
anyway,
but
it
looks
good
to
me
now.
Just
look
good
I
think
we
can
remove
this
right.
Yes,
we
can
good
catch.
A
A
G
A
C
A
C
A
C
C
C
A
Spec
look:
somebody
already
moved
the
suggestion:
spec
I
notice,
JavaScript's
nevermind.
A
C
A
C
A
C
C
To
right,
I
think
we're
fine,
deleting
it
I
think
so
it's
in
another
component
and
I
think
we
can
kind
of
hope
that
that
component
had
good
coverage
and
if
we're
not
sure
we
can
also
like
we
can
and
at
review
time
we
can
yep
make
changes
to
the
to
the
sub
back
that
actual
subject
and
see
if
it
caused
any
tests
to
fail
and
we'll
know
if
we
lost
coverage
or
not
so
I'm.
Finally,
removing
this
test
I'm.
B
A
A
So
the
only
thing
that
you
could,
the
thing
that
you
might
want
to
test
is
hey.
Did
we
call
the
bounce
in
when
the
component
was
created
right?
Something
like
that
like
resetting
resetting
like
the
caustic
stuff
from
just
on
before
each
or
something
mounting
the
component?
Hey
and
the
bounce
has
been
called
with
this
function,
and
this
timeout
as
a
as
an.
A
A
C
A
C
E
E
E
C
A
C
D
C
C
F
C
A
C
B
A
So
now
have
a
look:
if
oh
cool,
yes
done,
he's
called
it
a
day
that
rocks
component
and
it's
funny
that
it,
you
know,
checks
for
some
tab
links
which
is
like
the
internal
implementation
of
tab.
Instead
of
just
checking,
you
know
that
two
tabs
are
rendered,
but
I
mean
we
have
13
minutes
and
a
few
components
left
right.
A
A
C
A
Sorry
it's
this
is
like
Reister
even
like
this,
so
yeah.
We
still
need
to
test
because
they
are
still
there.
People
haven't
stopped
using
them.
I
think
we
have
probably
like
we
probably
used
like
real
bootstrap
models.
We
used
like
a
deprecated
one
deprecated
and
we
used
the
one
from
good
lab
UI
in
case
we
have
one
so
yeah,
just
just
usually
a
good
lab
hey.
This
doesn't
work
as
expected:
let's
create
a
new
one
without
any
blame
to
people
who
have
done
this
in
the
past.
A
D
C
C
C
C
C
You
see
there's
this
big
comment:
I'm
commenting
outline
13.
There
is
a
transformer
for
transforming
this
X
that
do
the
this
dot
instead
of
like
keeping
locally
scoped
variables
and
stuff
yeah,
but
it
it
blows
up
if
it
doesn't
use
this.
So
it's
compound
out
by
default,
but
if
you
ever
run
into
it,
you
may
want
to
uncomment
that.
A
And
I
think
this
is
where
we
end
up
in
a
pickle,
because,
if
I
recall
correctly,
the
view
test
to
tears,
don't
work
well
with
SVG's.
Could
it
be
true.
A
C
C
C
F
C
A
C
C
A
C
C
A
C
C
A
C
A
A
A
A
A
A
If
you
don't
need
to
jump
to
another
meeting,
because
this
is
the
last
thing
I
will
do
today,
I
will
just
finish
the
rest.
If
nobody-
and
if
you
want
to
Jeon
stay
on,
you
can
stay
on
I.
Also,
do
it
by
myself.
I
mean
I.
Am
I
easy
either
way?
We
also
have
a
spec
wait?
Oh
oh,
we
still
have
an
EE
spec
that
wants
it.
A
B
A
C
To
be
the
same
across
Carmen
just
helps
technically
with
like
the
when
we
do
migrate
this
back
over
to
just,
but
since
this
is
an
EE
looking
a
see
II,
it's
not
like
it
is
still
gonna,
be
the
same,
so
I
I,
don't
know,
I
would
suggest
for
this
kind
of
file.
We
should
only
be
our
migrations
for
these
mock
data's.
We've
done
to
adapt
and
wrap
around
jest
stuff
like
we
don't
need
to
worry
about
those
and
until
we've
moved
everything,
that's
using
it
and
it
looks
like
things
something's
still
using
it.
A
Is
this
a
different?
Is
this
still
part
of
your
IDE?
No,
it
is
this
just
like
another
tool
that
I
use
for
staging
I
should
really
check
out
because
it
has
like
VCS
features,
but
I
didn't
use
them
yet
so
so
yeah
I
mean
to
be
honest.
Like
another
thing,
we
could
think
about
I,
don't
know
how
many
specs
are
actually
in
this
folder
yeah,
because
it's
just
the
store
and
to
be
honest
thoughts
are
often
like
really
easy
to
migrate.
Right,
yeah,
yeah.
C
A
Let's,
let's
do
it,
let's
do
it
after
we've
dealt
with
the
other
ones,
that's
a
good
call
yeah.
So
where
were
we
spec
front
and
we
are
the
new
ones,
you
sure?
What
am
I
confused?
We
under
Yee
right
now,
yes,
I
was
wondering.
A
C
We've
kind
of
had,
while
you're,
while
you're
doing
this,
we
with
that
discussion
about
you
know
how
do
we
just
need?
You
turned
into
I
think,
but
how
do
we
mark?
Something
is
reusable
and
I
kind
of
feel
like
things
should
be
reusable
by
default
and
I
like
having
things
organized
by
features
yeah,
because
now
we
have
this
huge
bucket
called
view
shared
and
I.
Think
there's
very
little
discoverability
of
what's
actually
reusable
here.
A
A
C
C
A
Mean
they
should
timeout
right,
I
mean
yeah
one
passed
and
the
other
didn't,
maybe
just
like
five
seconds.
What
is
this
doing?
Well,
it's.
C
C
C
A
C
C
A
A
C
C
A
A
C
C
A
C
A
A
C
D
A
A
A
C
A
C
C
A
A
A
D
A
A
A
Shoot
I
we've
also
now
deleted
everything,
but
the
stuff
that
we
wanted
to
delete.
So
we
also
wanted
to
delete
this
one
right
and
then
we
can
do
an
extra
commit
for
removing
the
other
tine,
its
spec,
that
make
sense
cool.
C
A
You
yes,
but
we
just
wanted
our.
C
C
Sorry,
no
I
think
I
think
you're
good
to
go
still.
I
think
you
just
want
to
add
those
things
and
then
I
think
yeah
I.
Think
if
you
add
everything
in
front
end,
you
should
be
good.
A
respek
friend
now.
C
A
Our
M
minus
RF,
spec
front-end
view
shed
new
good
now
where's
the
user
avatar
I.
Definitely
we
know
we're
going
to
add
all
of
these.
No,
let's!
Let's
do
a
sorry.
I
sorry
I'm
a
bit
ignoring
today.
No
you
get
on
stage.
I
want
to
add
this
one:
okay
and
to
use
avatar
yeah
right,
git
commit
remove
unused
user
about
our
component.