Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
1
Merge Requests
1
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
gitlab-ce
Commits
12a1daf9
Commit
12a1daf9
authored
May 04, 2021
by
Lin Jen-Shin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add tests for InjectEnterpriseEditionModule
parent
084f1741
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
141 additions
and
0 deletions
+141
-0
spec/config/inject_enterprise_edition_module_spec.rb
spec/config/inject_enterprise_edition_module_spec.rb
+141
-0
No files found.
spec/config/inject_enterprise_edition_module_spec.rb
0 → 100644
View file @
12a1daf9
# frozen_string_literal: true
require
'fast_spec_helper'
RSpec
.
describe
InjectEnterpriseEditionModule
do
let
(
:extension_name
)
{
'FF'
}
let
(
:extension_namespace
)
{
Module
.
new
}
let
(
:fish_name
)
{
'Fish'
}
let
(
:fish_class
)
{
Class
.
new
}
let
(
:fish_extension
)
{
Module
.
new
}
before
do
# Make sure we're not relying on which mode we're running under
allow
(
Gitlab
).
to
receive
(
:extensions
).
and_return
([
extension_name
.
downcase
])
# Test on an imagined extension and imagined class
stub_const
(
fish_name
,
fish_class
)
# Fish
allow
(
fish_class
).
to
receive
(
:name
).
and_return
(
fish_name
)
end
shared_examples
'expand the extension with'
do
|
method
|
context
'when extension namespace is set at top-level'
do
before
do
stub_const
(
extension_name
,
extension_namespace
)
# FF
extension_namespace
.
const_set
(
fish_name
,
fish_extension
)
# FF::Fish
end
it
"calls
#{
method
}
with the extension module"
do
expect
(
fish_class
).
to
receive
(
method
).
with
(
fish_extension
)
fish_class
.
__send__
(
"
#{
method
}
_if_ee"
,
fish_name
)
end
it
"ignores EE prefix and calls
#{
method
}
with the extension module"
do
expect
(
fish_class
).
to
receive
(
method
).
with
(
fish_extension
)
fish_class
.
__send__
(
"
#{
method
}
_if_ee"
,
"EE::
#{
fish_name
}
"
)
end
it
"ignores ::EE prefix and calls
#{
method
}
with the extension module"
do
expect
(
fish_class
).
to
receive
(
method
).
with
(
fish_extension
)
fish_class
.
__send__
(
"
#{
method
}
_if_ee"
,
"::EE::
#{
fish_name
}
"
)
end
end
context
'when extension namespace is set at another namespace'
do
let
(
:another_namespace
)
{
Module
.
new
}
# QA
before
do
another_namespace
.
const_set
(
extension_name
,
extension_namespace
)
# QA::FF
extension_namespace
.
const_set
(
fish_name
,
fish_extension
)
# QA::FF::Fish
end
it
"calls
#{
method
}
with the extension module from the additional namespace"
do
expect
(
fish_class
).
to
receive
(
method
).
with
(
fish_extension
)
fish_class
.
__send__
(
"
#{
method
}
_if_ee"
,
fish_name
,
namespace:
another_namespace
)
end
end
context
'when extension namespace exists but not the extension'
do
before
do
stub_const
(
extension_name
,
extension_namespace
)
# FF
end
it
"does not call
#{
method
}
"
do
expect
(
fish_class
).
not_to
receive
(
method
).
with
(
fish_extension
)
fish_class
.
__send__
(
"
#{
method
}
_if_ee"
,
fish_name
)
end
end
context
'when extension namespace does not exist'
do
it
"does not call
#{
method
}
"
do
expect
(
fish_class
).
not_to
receive
(
method
).
with
(
fish_extension
)
fish_class
.
__send__
(
"
#{
method
}
_if_ee"
,
fish_name
)
end
end
end
shared_examples
'expand the assumed extension with'
do
|
method
|
context
'when extension namespace is set at top-level'
do
before
do
stub_const
(
extension_name
,
extension_namespace
)
# FF
extension_namespace
.
const_set
(
fish_name
,
fish_extension
)
# FF::Fish
end
it
"calls
#{
method
}
with the extension module"
do
expect
(
fish_class
).
to
receive
(
method
).
with
(
fish_extension
)
fish_class
.
__send__
(
"
#{
method
}
_mod"
)
end
end
context
'when extension namespace exists but not the extension'
do
before
do
stub_const
(
extension_name
,
extension_namespace
)
# FF
end
it
"does not call
#{
method
}
"
do
expect
(
fish_class
).
not_to
receive
(
method
).
with
(
fish_extension
)
fish_class
.
__send__
(
"
#{
method
}
_mod"
)
end
end
context
'when extension namespace does not exist'
do
it
"does not call
#{
method
}
"
do
expect
(
fish_class
).
not_to
receive
(
method
).
with
(
fish_extension
)
fish_class
.
__send__
(
"
#{
method
}
_mod"
)
end
end
end
describe
'#prepend_if_ee'
do
it_behaves_like
'expand the extension with'
,
:prepend
end
describe
'#extend_if_ee'
do
it_behaves_like
'expand the extension with'
,
:extend
end
describe
'#include_if_ee'
do
it_behaves_like
'expand the extension with'
,
:include
end
describe
'#prepend_mod'
do
it_behaves_like
'expand the assumed extension with'
,
:prepend
end
describe
'#extend_mod'
do
it_behaves_like
'expand the assumed extension with'
,
:extend
end
describe
'#include_mod'
do
it_behaves_like
'expand the assumed extension with'
,
:include
end
end
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment