►
Description
In this session we pair up on testing an MR that fixes the artifacts dropdown behavior. We also pair up on mocking the locale module to help with unit test determinism across environments.
00:00 - Testing artifacts dropdown contribution
18:30 - Mocking locale modules
- https://gitlab.com/gitlab-org/gitlab/-/merge_requests/128531
A
Another
okay,
all
right!
Well,
thanks
for
hopping
on
the
the
pair,
the
pair
train
I
am
looking
at
this
Mr
from
a
community
contribution.
A
That's
been
open
for
a
while,
but
we're
just
about
to
close
it
and
I
was
just
wanting
to
do
one
quick
test
of
it
before
we
close
it,
and
this
does
a
really
helpful
update
to
this
artifacts
drop
down
list
on
the
pipelines
where
it
will
refetch
it
when
you
drop
down,
so
he
has
an
example
of
this
of
sometimes
you
drop
it
down
and
it
loads
everything,
but
then
the
artifacts
aren't
finished
or
something,
and
then,
when
you
open
it
again,
they're
out
of
date,
so
I
guess
this
is
the
beginning
of
the
GIF
and
so
he's
noticing
that
and
then
I'm
not
sure.
A
Right
so
then,
I
I
kind
of
accidentally
delayed
this
longer
than
it
probably
needed
to
be
because
it
was
clearing
out
the
artifacts
on
every
open,
and
so
even
if
it
failed,
it
would
just
be
okay,
I
reopened
it,
and
now
it
failed
and
now
I've
lost
the
old
list.
A
A
A
Let
me
let
me
block
this
URL
though,
and
see
what
happens
again.
All
right
cannot
load
artifacts.
A
Yes,
that
one
couldn't
load
the
artifacts
all
right,
I,
wonder
if
I
can
look
at,
like
my
whole
git
lab
instance,
for
a
pipeline
with
artifacts.
You
know
like
going
to
the
admin
thing.
B
C
B
A
D
B
A
A
A
Wait,
oh
wait,
can
I
run
the
can
I
do
the
the
pipeline
sweaters
I
was
like,
can
I
do
the
review
app.
A
A
Boom,
let's
go
I
think
I
want
to
do.
B
It's
a
little
it's
a
little
complicated
to
set
up
initially,
but
I
don't
know,
do
you
have
Docker?
Do
you
have
something
docker-ish
I'm.
A
In
magland,
so
I
I
know
I,
don't
but
I
have
it
running
here.
It's
freaking
out
on
some
things,
but
that's
okay,
it'll
figure
itself
out.
Let's
go
ahead
and
create
another
one
of
those
Block
Rockin
projects.
D
A
I
wonder
if
there's
actually
instructions
for
that
here,
oh
yeah,
great
artifacts,
the
roar
template
project
fits
perfectly.
Oh,
maybe
I
should
just
do
that.
Let's,
let's
leave
this
and
create
the
new
template
project.
The
project
create
from
template,
use
template
another
one
of
those
block
rocking
Warren.
A
Maybe
let's
create
like
a
merger
Quest
and
see
what
happens
open
this
up
in
the
web.
Ide.
D
A
B
B
Yeah
because
they'll,
like
the
SAS
stuff
I,
think
pulls
down
a
particular
image
or
tries
to
anyways
yeah
all
these
Default
jobs,
flash.
B
B
D
A
And,
let's
just
add
one:
we're
gonna
call
it
the.
B
Echo
hello,
redirect
hello.
Oh
oh.
C
B
And
then,
let's
see
here,
you
need
an
artifacts
block.
A
B
A
B
You
know
what
you
we
should
do,
what
we
should.
We
should
split
this
up
into
a
couple:
different
jobs
to
get
the
full
effect.
Oh.
C
B
A
A
A
A
B
A
Do
they
need
to
be
like
this
I
think?
That's
I
think
it
needs
to
be
like
that.
B
I
wonder
what
oh
you
know
what
you
know.
Why?
Because
yamo
the
star
is
like
right
reference
blocks
or
something
right:
yeah
yeah
could.
A
B
A
B
B
A
Yeah
yeah
yeah:
oh
look
at
that!
I
click
on
this
one
yeah
and
the
file.
Okay,
this
isn't
anything
related
to
this
Mr,
but
I
click
on
this
and
the
we
should
probably
like
name
the
file
a
little
more
specific
if
I
have
a
whole
bunch
of
different
ones.
You
know
yeah
yeah,
okay,
all
right,
but
we
got
unit
tests
sleeping
right
now,
sleeping
and
doing
its
thing.
B
A
A
Looks
good
to
me
all
right:
let's
pick
a
gif,
we're
gonna
have
to
go
Miyamoto
because
we
can
plan
some
Pikmin,
4
demos
refund.
A
Oh,
the
original
game,
I
hadn't,
gotten
to
play
that
one
I
remember
we
talked
about
it.
I
still
haven't
played
it.
B
A
Yes,
I
have
one
already
started
and
running
pipelines.
This
is
the
old
commit
I
want
to
double
check
that
this
is
relevant.
Artifact
drop
down
of
any
rows
fetched.
Thus
at
least
two
when
live
update
shifts.
Yes,
I
love
this
page
refresh,
but
is.
A
Documents
claim:
okay,
all
right.
Well,
that
looks
great
yeah
if
you
don't
have
something.
I
have
a
weird
thing.
So
let
me
copy
this
note.
C
D
A
Yeah,
so
this
is
about
the
scope,
is
around
tests
and
test
constants
and
all
of
that,
but
the
real
thing
that's
irking
me
is:
we
have
in
our
internationalization
guide,
externalization.
A
That
creates
all
sorts
of
inconveniences.
Oh
does
it
for
sure,
because
it
would
be
really
nice
to
say
to
have
content,
for
instance.
This
is
the
example
that
comes
to
my
mind
of.
A
It
would
be
nice
to
have
a
hard-coded
value
here
of
like
what's
the
actual
text,
I
expect
from
this
thing.
You
know
what
I'm
saying
yeah
yeah
yeah,
and
so
the
font
came
up
when
we
were
talking
about
this
is
why
is
the
translation
functions?
Why
are
they
even
functional
and
unit
testing
like
we
should
probably
just
stubble
to
not
do
anything
and
just
return,
whatever
string
was
actually
passed
to
it?
A
So
that's
my
that
was
my
Mr
I
was
going
to
try
to
put
together
was
in
unit
tests.
We
mock
out
double
underscore
and.
A
I
see
what
you're
saying
the
reason
we,
the
reason
the
the
guide
suggests
doing.
This
is
because
of
jihu
gee
who's
default
context
is
not
English,
and
so
these
translation
functions
actually
run
and
their
tests
locally
fail,
because
it's
actually
doing
the
the
Translating
of
stuff
mm-hmm,
and
so
my
my
thought
is:
can
we
just
make
an
environment
that
works
on
both
our
machines
and
gee
his
machines
so
that
we
we're
not
constrained
to
you
know
what
I'm
saying,
and
we
also
can't
just
throw
like
the
other
thing
too,
is
I.
A
A
Right
on
the
test
assertion,
it'll
still
fail
on
their
machine,
see
what
I'm
saying,
because
the
other
idea
would
be
I'm,
not
gonna,
actually
edit
this
but
like.
If
we
did
yeah,
you
have
two
items:
it'd
be
nice
to
say:
I
expect
this
to
be
yeah.
You
have
funky
ideas,
you
know
whatever
the
bar
value
was
right.
A
This
will
fail
on
their
machine
because
the
production
code
is
always
even
unit
test.
Land
is
always
running
the
translations.
For
that.
B
C
B
Because,
like
so,
this
is
this,
is
this
is
a
pain
to
do
I'm
with
you.
It
should
be
like
a
fixed
value
right,
like
the
the
developer.
Experience
of
of
the
copying
like
s
printf
under
underscore
is
not
great
right,
yeah,
but
I,
wonder
plus
like
importing
everything,
and
all
of
that,
like
it's
a.
B
So
we
have,
we
have
the
matter
to
match
interpolated
text
yeah
and
I-
think
it
kind
of
falls
down
because
it
just
as
far
as
I'm
aware
it
just
strips
these
yeah
strip
scripts,
the
expert
at
formatting,
yeah
and
I-
wonder
if
we
can
beef
it
up
somehow
to
like
take
to
do
the
S
print
effing
for
us.
A
I
think
that's
a
good
idea.
I
think
it's
I
think
that's
a
separate
problem
than
the
problem
at
hand.
A
The
problem
at
hand
is
like
the
production
code
runs
differently
on
different
worldwide
developer
machines,
so
the
actual
will
not
be
deterministic
if
it
runs
on
my
machine
or
if
it's
running
on
jihu
machine,
that's
seems
to
be
as
I
interpreted.
The
Rook
cause
of
the
problem
is
not
necessarily
has
to
do
with
Sprint
F,
but
more
has
to
do
with
is
not
a
deterministic
value
in
our
unit
test
land.
A
Why
is
it
machine
specific,
and
that
makes
the
assertions
fail,
because
if
there's
assertions
then
have
to
also
figure
out
how
to
adapt
to
the
machine
and
in
some
ways,
Sprint
f
is
the
most
obvious
one
in
some
ways,
it's
very
inconvenient
to
make
it
adapt
to
the
Geo
machine,
so
Mike,
my
desire
would
be
to
get
rid
of
this
requirement.
I
would
love
to
get
rid
of
the
requirement
to
have
to
translate
this
thing.
B
B
A
A
A
A
That's
that
was
yep.
I
would
love
to
do
that
and
I
brought
that
up.
But
it
sounds
like
that's
not
a
possibility.
A
So
there's
an
internal
slack
thread,
I,
don't
think
I
did
I
link
to
it.
Let
me
see
I
would
have
called
it
internal
selectment.
Yes,
yes,
yes,
yes,.
A
C
A
Len
Jensen,
also
known
as
the
god
fat
he's,
the
one
that
was
I
think
collaborating
more
closely
with
jihu
on
setting
up
whatever
they
needed,
but
for
whatever
reason
they
do
need
to
to
run
in
a
different
locale.
B
A
D
A
B
B
I
guess
so,
but
ends
ends
you
still
have
to.
You
definitely
have
to
do
the
the
like
length
checking
too
or
the
or
the
number
checking.
A
B
A
That's
that's
the
downside
to
it
all,
but
I
have
a
feeling.
It's
I
have
a
feeling:
it's
going
to
be
worth
it,
but
if
we
don't
like
it,
I
mean
I.
Might
we
may
do
it
and
then
be
like
no,
this
sucks,
that's
fine,
too
yeah.
A
I
think
the
goal
would
be
we
as
printf
shouldn't
show
up
in
tests
at
all,
like
you
should
just
test.
This
is
the
hard-coded
string
I
expected
from
all
of
this,
and
then,
if
you
end
up
with
weird
funky
variable
names
showing
up
in
your
actuals
like
that,
should
be
glaringly
obvious,
like
you
didn't
use,
S
printf
correctly,
yeah,
yeah,
okay.
So
let's
try
it
out.
I
think
the
first
thing
to
do
is
check
out
the
Locale,
because
I
don't
even
know
where
these
things
come
from.
B
Think
I
think
if
I
remember
correctly,
we
we
have
done
this
pretty
much
on
our
own,
with
the
exception
of
we
Farm
out
to
we,
we
call
out
to
some
imported
Locale
function
for
doing
the
get
text,
translation.
A
So
maybe
that's
all
we
have
to
mock
that's
interesting
right,
so
we
wouldn't
have
even
have
to
do
the
actual
stuff
so
like
in
in
get
texts.
What
is
this
low?
Cog?
Oh,
it's
Jed
has
a
thing.
Jet
is
our
bizarrett.
A
B
There
Windows
that's
why
we
had
a
we
had
a
Locale
helper,
well,
Windows
translations.
So
that's
a
good
point.
B
B
B
A
A
Yeah
I
think
we're
gonna
have
to
look
at
I
think
we
might
have
to
look
at
jihu's
code
base.
B
A
A
D
D
A
Let
me
double
check.
This
is
actually
translated.
Yes,
this
is
actually
translate
string,
I,
don't
know
if
we
actually
have
translations
for
this.
Try
try.
B
B
A
Try
Spanish.
B
No,
it's
not
translated.
Well,
I
guess
it
just
says:
message:
ID,.
A
I
think
there's
a
lot
of
I
think
that
gitlab
is
mostly
translated
from.
Let
me
go
to
my
preferences.
A
A
D
A
D
A
Yeah,
okay,
so
that's
doing
stuff.
There's
now
all
these
app.js
files,
all
right
loads
of
app.js
files,
have
been
created.
A
Nope,
what
would
load
these
low-cal
apps?
You
know
what
loads
these
things.
B
Which
suggests
that,
like
it
shouldn't,
be
a
problem
on
front
end
test
entire
at
all,
but
like
clearly,
it
is
because
there's.
A
A
A
Cool
got
it,
we've
got
the
failure
happening
brilliant.
So
now,
let's.
A
Okay,
I
didn't
even
need
set
languages;
sweet,
yes,
okay,
all
right!
We
got
the
problem.
So
now,
let's
see
if
we
can.
C
B
It
kind
of
looks
like
well.
D
B
So
I
guess
Market
mockingjet
is,
is
it
fits
in
any
part
of
the
pipeline
right,
as
opposed
to
trying
to
figure
out
where
okay.
A
Right
so
here
we
go,
let's
go
mockingjet,
let's
go.
A
Is
jet
like
a?
Is
that
a
is
there
a
character
named
from
something.
B
A
A
So
we're
gonna
do
return
nom
greater
than
one
plural
packs.
Oh
wait
for
zero.
Do
you?
Should
we
jump
into
the
source
code
and
see
what
it
does?
Let's
just
jump
at
the
source
code?
Let's
see
what
it
does
and
get
X.
B
B
A
A
B
A
A
Yeah
is
there
a
test
case
that
you're
curious
about
whether
it'll
pass
or
not?
Here.
A
So
when
I'm
in
Locale
index
and
I
look
at
we
here's
Jet
and
we
create
this
Locale
thing.
We
have
git
text
and
then
we
have
in-get
text,
but
then
we
don't
use
it
anymore,
like
we
just
use
those
two
functions
of
it.
B
A
A
A
B
B
C
A
B
A
Figure
it
out
for
yourself,
it's
possible
that
some
environments
run
a
specific
low,
cal
locale.
D
A
B
C
A
On
file
you
directly
import
any
foreign.
A
B
A
I
think
that's
a
really
great
question
and
I
really
don't
know
so:
I'm
gonna,
I'm,
gonna
I'm.
My
intent
is
to
push
this
up
and
see
what
happens
and.