►
Description
**Result:**
- https://gitlab.com/gitlab-org/gitlab/-/merge_requests/32086
- https://gitlab.com/gitlab-org/gitlab/-/merge_requests/32336
**Highlights:**
- 3:00 Debugging differences between Karma environment and Jest environment
- 28:10 Lets keep this spec in Karma since it seems dependent on browser environment
- 33:20 We start on a new task of finishing up migrating lib/utils directory
A
Do
you
wanna
drive,
Neto
yeah
sure
so
I
can
describe
the
situation.
I
start
screen,
sharing,
there's
one
yes,
correct,
I'm,
always
terrified
to
share
the
wrong
one?
Okay.
So
there
we
have
this
issue
and
I
told
well
it's
one
test
and
the
mock
day
that
this
is
going
to
be
easy
right.
But
what
can
go
wrong?
Yes,
what
can
go
resize?
A
So
this
is
an
integration
in
the
integration
test
and
I
told.
Maybe
we
shouldn't
bring
this,
but
then
it
seems
that
all
the
pieces
are
working
so
with
mount.
We
can
actually
replicate
this
ingest,
so
I
thought.
Maybe
we
just
bring
it
and
then
there
is
going
to
be
a
nice
day
where
all
this
integration
has
to
leave
with
another
test
suit,
that's
more
a
doc
for
integration
stuff.
A
So
basically
what
is
doing
this
is
mounting
the
monitoring,
dashboard
and
try
to
resize
and
measure
that
the
graph
are
not
even
resize
is
actually
toggling
the
the
toggle
and
measuring
and
the
graphs
arm.
P18
consistently
and
I
tried
the
Karma
test.
I
just
modified
here
to
describe
it
and
console.log
and
it
works.
A
Actually
here
it
was
using
with
you,
but
it
was
using
my
create
local
view
and
then
extending
it
and
then
manually
Mountain
the
component
I
simplified
all
this
logic.
You
know,
maybe
I
just
stop
it
here
for
a
second,
so
you
you
can
take
a
look
that
up
until
here.
Everything
is
fine,
so
basically
I'm
mounting
because
of
the
integration
best
shot
amount,
doesn't
make
sense,
just
stop
in
charge
to
people
because
of
the
rise.
The
bootstrap
tooltip
is
going
crazy
by
the
way.
I.
A
Don't
know
why
your
mark
is
not
kicking
in
here,
because
we
have
it
mocked
up
here.
What
is
not
kicking
in,
but
that
may
be
a
second
part
to
to
investigate,
and
then
there
is
store,
Buick
store
creation,
stop
being
something
that
just
doesn't
have
the
beautiful
chrome
implementation
mock
adapter
mount
the
component.
A
B
A
So
this
is
this
is
our
component
and
it
will
do
this
right
so
instead
of
passing
every
props
in
our
case
I'm,
letting
me
initialize
and
then
reset
in
a
store,
this
is
slow.
But
it's
to
test
it's
an
integration
test,
I
told
ok
at
least:
let's
get
it
working
and
then
we
optimize
it
okay
and
then,
and
then,
since
we
are
rewriting
the
store
and
not
expecting,
the
component
update
returned
proper
the
end
next
week.
So
we
are
sure
that
the
dummies
update,
okay,.
C
A
A
Working
that
ok,
the
dashboard
spec,
is
here.
The
proper
per
spec
is
here
a
proper
I,
didn't
open
it,
but
yeah,
ok,
ok!
So
what
is
the
issue?
The
issue
is
that
the
justice
initialized
as
the
karma
test
doesn't
bring
the
same
done
now
that
all
they
create
completely
different
graphs,
yellow
and
and
as
per
discovering.
Why
well
so
I
was
working
on
some
back-end
test
and
let's,
of
course,.
A
And
I'm
completely
fine,
a
few
people
say:
hey
look:
this
is
an
integration
test,
just
leave
it
in
karma
and
just
drop
it.
But
my
it's
weird
that
once
I
finished
setting
up
the
test,
the
produce
Dom
is
different
and
it
makes
me
suspect
that
the
Karma
test
is
also
fragile
or
depending
on
something
else,
and
so
I
just
decided
that
it
was
worth
to
investigate
a
little
bit
but
I'm
happy
to
hear
otherwise
and
stop
suffering
on
this
file.
So
what
image.
C
C
A
A
C
We
should
feel
we
should
have
some
confidence
if
we
just
run
it
in
isolation
like
you
are
and
if
it
passes
like
we
should
have
some
confidence
that
it's
it's
doing
all
right.
Some
things
I
could
keep
it.
So,
just
knowing
that
there's
the
context
here
of
doing
something
with
resizing
so
things
that
could
keep
it
like.
It's
just
not
gonna
work
in
the
Jets
environment
is,
if
we're
doing
some
sort
of
like
resize
observer
or.
A
Like
the
the
funny
thing
is
that
so
this
is
loading
this
dashboard
right
and
I
got
bit
fast,
because
that
song
it's
a
lot
of
markup
and
before
and
we've
to
process.
So
basically
it's
generating
a
panel
and
every
panel
is
a
graph
group
right
and
and
then
we
go
inside
this
graph
row,
and
we
basically
talk
about
this,
and
so
basically
it's
acting
on
this
be
show
and
I.
Don't
see
why
this
should
be
different.
B
A
And
the
fun
part
is
that
so
you
see
this,
there
is
some
walk
around
there,
but
you
see
this
is
the
graph
that
the
Karma
test
is
going
to
pick
up
right,
which
is
a
very
teeny,
tiny
graph
and
and
look
at
this
vector
here.
So
the
selector
goes
position:relative
SVG.
This
is
not
the
most
precise
selector
in
the
universe,
right
and
and
and
and-
and
you
know
this-
there
are
icons
in
this
component
tree
that
are
made
of
SVG
and
they
have
position:relative.
B
A
C
A
A
You
can
do
this
like
this.
A
big
monitor,
let's
see
them
same
side
to
side
no
I
hate
it
karma
is
so
difficult
just
to.
C
A
D
A
A
A
C
D
A
D
A
B
C
So
this
is
interesting
when,
when
doing
these
migrations
yeah,
if
we
okay,
I,
think
it's
gonna
help
us
I
think
it's
gonna
help
us
if
we
kind
of
reshape,
what's
our
what's
the
best
source
of
truth
that
we're
trying
to
migrate.
If
we
reshape
that
I
think
it's
gonna
enlighten
what
our
chest
it
might
be
missing
or
should
look
at
what.
A
B
C
D
C
A
This
is
like
to
loop
inside
the
other
like
and
oh
by
here,
so
it
we
need
to
start
to
look
at
out
the
data
inside
to
look
at
that.
So
actually,
actually
this
is
consistent,
because
so
there
is
this
log
that
says
that
truth
put
is
not
part.
I
modified
either
with
the
search
on
the
mount
that
just
remote
stuff
as
I
was
going
nuts.
A
A
C
C
A
If
we
were
to
trust
the
description
of
the
ID
of
the
test
cases,
it
if
try
first
to
find
the
graph
assert
that
this
is
visible,
that
is
expanded,
so
the
style
display
is
not
Eden
and
it
hasn't
reached.
So
it's
there
right
positive,
a
certain
and
then
he
clicks
on
the
toggle.
Then
you
expect
it
to
disappear
right
now
and
then
somehow
is
resetting
the
width
to
expand
and
probably
for
for
the
best
afterwards,
because
karma
is
done
for.
A
C
A
A
A
B
A
C
A
A
C
A
C
A
Interesting
stuff
from
oh
yeah,
so
if
I
restore
this
like
this,
I
want
to
do
above
some
root
of
TNT
and
copy
paste
of
the
chart,
HTML
and
then
print
the
whole
thing
and
just
find
it
right
in
karma.
If
I
run
it
two
times,
it
should
run
right.
So
at
least
we
can
find
a
selector.
That
makes
more
sense.
So
if
this
is
our
chart
right
and
if
this
chart
is
inside
wrong
route,
I'm
sorry
I
know
this
is
not
the
most
exciting
stuff
to
deal.
A
C
A
C
C
C
A
C
Wait
wait.
Oh
wait,
wait
go
back!
Oh
yes,
oh
sorry,
no
I
did
see
it
in
the
HTML.
If
you
go
back
to
I
might
just
be
saying
things:
I
haven't
gotten
a
lot
of
sleep
lately
yeah
here
it
was
here
so
check
this
out,
see
what
we're
setting
okay
looks
like.
We
do
have
a
width
there.
I
was
looking
at
I,
saw
this
height
I
thought.
Maybe
we're
setting
the
width
outside
of
this
specific
component
and
in
a
karma
test.
Karma
runs
in
a
browser.
C
So
it's
gonna
work
like
if
my
parent
width
is
different,
like
all
of
that
is
gonna,
be
adjusted
when
I
do
like
an
assertion
on
width,
but
in
Jamestown
we
just
can't.
We
could
try
to
mock
all
that,
but
it's
not
there.
It
doesn't
exist
in
just
in
our
thumb
ingest.
This
doesn't
exist,
but
our
route,
this
route
is
different.
You
see
here
we're
printing
out
Prometheus
panel
I
went
here,
where's
our
Prometheus
graph
group.
Well,
there
it
is
through
play.
C
Oh,
but
you
know
what
you
know
why?
Because
it
looks
like
we
use
it,
we're
using
view
draggable
we're
using
some
sort
of
third-party
library.
It
could
be
have
to
do
with
how
tests
are
mock
our
time.
I'm.
Sorry
time
is
mock
down
like
they
could
be
inserting
some
of
these
on
a
timeout
or
something
you
were
never
on
old.
A
lot
of
me
feels
like
I.
Don't
want
to
migrate.
C
A
C
This
is
a
good
you
know,
search
through
the
good
blame
and
think
somebody
about
it,
but
I
would
honestly
if
I
was
doing
this
and
I
saw
something.
Resize
and
I
saw
okay,
yeah
we're
using
something
like
view,
draggable
I
think
it's
a
good
call
to
let's
move
it
to,
because
we
have
a
process
for
these.
These
browsers.
C
A
D
A
C
No,
that's
that's
good,
and
but
it
was
also
good
wrestling.
I.
Think
I
think
we
get
better
when
we
wrestle
with
these
kind
of
things
I
so
really
exciting.
This
I
have
an
M
are
open
to
that,
takes
steps
forward
to
setting
up
a
front
end
integration
test,
environment
and
just
so
we'll
actually
have
to
jest.
Configs
will
have
a
unit
test
config
and
an
integration
today.
D
C
What
is
the
full
dirt
here?
If
you
do
a
search
for
browser
underscore
speck
you'll
see
a
pattern.
C
B
A
C
A
A
A
C
A
D
C
A
C
C
C
A
C
Okay,
so
the
goal
is
I
thought
my
head.
I
know:
there's
gonna
be
some
things
that
are
probably
gonna
need
to
go
here,
but
I
think
there's
gonna
be
a
lot
that
doesn't
need
to,
but
we're
gonna
see
some
lovely
specs
like
some
that
are
using
this
Jasmine
style.
This
base
has
contacts
you
see.
We
only
have
aerial
functions.
Kind
of
going
on
so
will
migrate
these
except
the
browser
spec
so
way
that
I've
I
started
following
this
pattern
from.
C
A
C
C
So
I'm
not
in
my
get
lab
directory
anymore
I'm
in
the
jessica's
codemod,
and
if
you
look
at
the
readme
there's
instructions
for
how
to
run
this.
It's
important
that
you
run
it
from
the
codemod
directory
so
that
it
uses
this
node
modules,
not
the
node
modules
of
get
lab
because
they'll
be
conflicts
there.
And
then
these
are
the
arguments
you
pass
to
it.
You
got
a
pass
parser
babylon
and
you
pass
in
this
local
file,
which
is
the
transformer
and
then
the
path
to
the
directory
that
you're
gonna
shift.
C
All
right,
okay,
so
handful
were
unmodified,
which
is
alright,
probably
mark
data.
Oh
and
here's.
Another
lovely
thing
that
I'm
happy
to
this
came
across.
I
ran
this.
You
see
some
changes
like
we're
now
using
arrow
functions,
but
we're
still
using
the
this
context
thing
which
is
going
to
blow
up
if
we
try
to
run
this
in
jets.
C
A
C
C
This
has
to
be
commented
out
like
it'd,
be
nice,
it's
possible
if
we
can
update
our
transform
it
to
accept
like
a
parameter
or
something,
but
we
actually
have
to
comment
this
out
to
transform
that
this
stuff,
because
it
blows
up
unless
it
sees
this
we're
using
the
third-party
library.
So
it's
a
little
flaky,
but
it's
really
nice
when
it
will
automatically
works.
So
I
just
uncomment
this
out
and
then
I'm
gonna
rerun.
It.
C
B
C
C
The
problem
with
I
think
the
way
we're
doing
this
transfer,
and
this
is
probably
a
problem
with
the
way
I've
organized
it.
You
see
when
you
do
code
shift,
you
only
pass
one
transformer,
so
it's
almost
expected
that,
like
rather
than
having
one
file
that
combines
everything
you
do
this
from
like
the
bash
level
of
like
of
doing
multiple
passes
through
a
number
of
files
and
stuff,
so
I
think
there's
some
optimizations
to
be
made.
C
B
C
C
C
C
B
C
C
C
A
D
B
C
C
C
Think
yeah
I
think
the
solution
is
gonna,
be
rather
than
doing
set
HTML
fixture,
which
is
only
gonna
work,
I
think
for
the
body,
probably
for
jeaious
Tom.
We
could
try
to
massage
it,
but
then
we're
gonna
have
to
be
concerned
about
all
our
other
uses
of
this
function.
I
think,
rather
than
using
set
HTML
fixture,
I'm
just
gonna
manually
write
to
your
document
head
and
then
and
then
clean
it
up.
Just
in
this
back,
I
might
be
able
to
do.
C
A
C
A
C
A
C
Yeah
I
think
I
think
it's
fine.
We
could
put
it
in
the
head
and
I.
Think
I'm
gonna
leave
this
head
recently
sitting
here,
because
there's
this
is
gonna,
do
no
damage
and
at
least
it
opens
up.
That's
fixing
that
up
if
we
needed
to
look
cool,
it
looks
like
this
is
done.
Right
did
I
leave
anything
behind,
I
might
have
some
of
mine,
but
you
have
there.
Jess
in
the
wrong
file,
now
run
Inc,
oh
right,
yeah
I!
C
A
D
B
C
C
C
C
D
C
Spy
on
dependency
there's
something
really
helpful,
but
it's
also
kind
of
weird
how
it
works.
It
looks
for
the
import
name,
you
pass
in
the
default
export
of
a
module
and
it's
it
creates
a
mock
based
on
the
import
name.
So
the
way
to
move
this
over
to
jess
is
really
easy.
It
would
be
amazing
to
have
a
you
know.
This
kind
of
automated
and
a
coach
thing
is
find
this
important
name,
URL
utility
and
mock
that
so.
C
C
Yeah
I
had
written
before
we
started
doing
J's
code
shift
for
it.
Some
of
this
automatic
migration
stuff
I
had
written
like
the
utility
to
automatically
you
know,
parse
through
using
babel
to
spy
on
dependency
and
make
all
this,
but
it
with
J's
code
shift
has
a
lot
more
benefits
to
the
previous
solution
we
have,
but
I
should
be
able
to
now
just
delete
these.
The
only
thing
is
I
need
to
now
import
it
because
we
are.
We
are
I,
think
it's
a
named
employee.
A
C
C
B
C
A
C
C
Yeah
that
was
not
working,
it
might
be
because
of
the
set
fixture
thing.
Cuz
I,
don't
see
us
we're,
not
cleaning
that
up
at
all
I'm,
just
I'm
really
curious
to
see.
If
that
will
help,
do
you
need
to
import
it
or
it's
a?
Is
it
a
global?
It
isn't
a
global,
so
I
probably
don't
need
to
import
it
you're
right.
C
A
C
C
A
There
you
have
I'm
cool,
fake
I'll,
go
pick
up,
Oh.
C
A
C
I'm
gonna
yeah,
that's
a
good
point
yeah.
This
probably
should
be
cleaned
up.
Well
it's
it's
time,
though,
thanks
for
hopping
on
and
checking
out
a
couple
of
justice
problems,
I'm
gonna
try
to
spend
five
minutes
getting
these
to
pass
and
then
I'll
pin
you
all
on
the
mr
yeah
I
appreciate
everyone
taking
the
time
to
to
sync
up
on
some
of
these
Jessica's
stuff.