Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F8613757
generator_test.exs
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Award Token
Flag For Later
Size
6 KB
Referenced Files
None
Subscribers
None
generator_test.exs
View Options
defmodule
Pleroma.Docs.GeneratorTest
do
use
ExUnit.Case
,
async
:
true
alias
Pleroma.Docs.Generator
@descriptions
[
%{
group
:
:pleroma
,
key
:
Pleroma.Upload
,
type
:
:group
,
description
:
""
,
children
:
[
%{
key
:
:uploader
,
type
:
:module
,
description
:
""
,
suggestions
:
Generator
.
list_modules_in_dir
(
"lib/pleroma/upload/filter"
,
"Elixir.Pleroma.Upload.Filter."
)
},
%{
key
:
:filters
,
type
:
{
:list
,
:module
},
description
:
""
,
suggestions
:
Generator
.
list_modules_in_dir
(
"lib/pleroma/web/activity_pub/mrf"
,
"Elixir.Pleroma.Web.ActivityPub.MRF."
)
},
%{
key
:
Pleroma.Upload
,
type
:
:string
,
description
:
""
,
suggestions
:
[
""
]
},
%{
key
:
:some_key
,
type
:
:keyword
,
description
:
""
,
suggestions
:
[],
children
:
[
%{
key
:
:another_key
,
type
:
:integer
,
description
:
""
,
suggestions
:
[
5
]
},
%{
key
:
:another_key_with_label
,
label
:
"Another label"
,
type
:
:integer
,
description
:
""
,
suggestions
:
[
7
]
}
]
},
%{
key
:
:key1
,
type
:
:atom
,
description
:
""
,
suggestions
:
[
:atom
,
Pleroma.Upload
,
{
:tuple
,
"string"
,
8080
},
[
:atom
,
Pleroma.Upload
,
{
:atom
,
Pleroma.Upload
}]
]
},
%{
key
:
Pleroma.Upload
,
label
:
"Special Label"
,
type
:
:string
,
description
:
""
,
suggestions
:
[
""
]
},
%{
group
:
{
:subgroup
,
Swoosh.Adapters.SMTP
},
key
:
:auth
,
type
:
:atom
,
description
:
"`Swoosh.Adapters.SMTP` adapter specific setting"
,
suggestions
:
[
:always
,
:never
,
:if_available
]
},
%{
key
:
"application/xml"
,
type
:
{
:list
,
:string
},
suggestions
:
[
"xml"
]
},
%{
key
:
:versions
,
type
:
{
:list
,
:atom
},
description
:
"List of TLS version to use"
,
suggestions
:
[
:tlsv1
,
":tlsv1.1"
,
":tlsv1.2"
]
}
]
},
%{
group
:
:tesla
,
key
:
:adapter
,
type
:
:group
,
description
:
""
},
%{
group
:
:cors_plug
,
type
:
:group
,
children
:
[%{
key
:
:key1
,
type
:
:string
,
suggestions
:
[
""
]}]
},
%{
group
:
"Some string group"
,
key
:
"Some string key"
,
type
:
:group
}
]
describe
"convert_to_strings/1"
do
test
"group, key, label"
do
[
desc1
,
desc2
|
_
]
=
Generator
.
convert_to_strings
(
@descriptions
)
assert
desc1
[
:group
]
==
":pleroma"
assert
desc1
[
:key
]
==
"Pleroma.Upload"
assert
desc1
[
:label
]
==
"Pleroma.Upload"
assert
desc2
[
:group
]
==
":tesla"
assert
desc2
[
:key
]
==
":adapter"
assert
desc2
[
:label
]
==
"Adapter"
end
test
"group without key"
do
descriptions
=
Generator
.
convert_to_strings
(
@descriptions
)
desc
=
Enum
.
at
(
descriptions
,
2
)
assert
desc
[
:group
]
==
":cors_plug"
refute
desc
[
:key
]
assert
desc
[
:label
]
==
"Cors plug"
end
test
"children key, label, type"
do
[%{
children
:
[
child1
,
child2
,
child3
,
child4
|
_
]}
|
_
]
=
Generator
.
convert_to_strings
(
@descriptions
)
assert
child1
[
:key
]
==
":uploader"
assert
child1
[
:label
]
==
"Uploader"
assert
child1
[
:type
]
==
:module
assert
child2
[
:key
]
==
":filters"
assert
child2
[
:label
]
==
"Filters"
assert
child2
[
:type
]
==
{
:list
,
:module
}
assert
child3
[
:key
]
==
"Pleroma.Upload"
assert
child3
[
:label
]
==
"Pleroma.Upload"
assert
child3
[
:type
]
==
:string
assert
child4
[
:key
]
==
":some_key"
assert
child4
[
:label
]
==
"Some key"
assert
child4
[
:type
]
==
:keyword
end
test
"child with predefined label"
do
[%{
children
:
children
}
|
_
]
=
Generator
.
convert_to_strings
(
@descriptions
)
child
=
Enum
.
at
(
children
,
5
)
assert
child
[
:key
]
==
"Pleroma.Upload"
assert
child
[
:label
]
==
"Special Label"
end
test
"subchild"
do
[%{
children
:
children
}
|
_
]
=
Generator
.
convert_to_strings
(
@descriptions
)
child
=
Enum
.
at
(
children
,
3
)
%{
children
:
[
subchild
|
_
]}
=
child
assert
subchild
[
:key
]
==
":another_key"
assert
subchild
[
:label
]
==
"Another key"
assert
subchild
[
:type
]
==
:integer
end
test
"subchild with predefined label"
do
[%{
children
:
children
}
|
_
]
=
Generator
.
convert_to_strings
(
@descriptions
)
child
=
Enum
.
at
(
children
,
3
)
%{
children
:
subchildren
}
=
child
subchild
=
Enum
.
at
(
subchildren
,
1
)
assert
subchild
[
:key
]
==
":another_key_with_label"
assert
subchild
[
:label
]
==
"Another label"
end
test
"module suggestions"
do
[%{
children
:
[%{
suggestions
:
suggestions
}
|
_
]}
|
_
]
=
Generator
.
convert_to_strings
(
@descriptions
)
Enum
.
each
(
suggestions
,
fn
suggestion
->
assert
String
.
starts_with?
(
suggestion
,
"Pleroma."
)
end
)
end
test
"atoms in suggestions with leading `:`"
do
[%{
children
:
children
}
|
_
]
=
Generator
.
convert_to_strings
(
@descriptions
)
%{
suggestions
:
suggestions
}
=
Enum
.
at
(
children
,
4
)
assert
Enum
.
at
(
suggestions
,
0
)
==
":atom"
assert
Enum
.
at
(
suggestions
,
1
)
==
"Pleroma.Upload"
assert
Enum
.
at
(
suggestions
,
2
)
==
{
":tuple"
,
"string"
,
8080
}
assert
Enum
.
at
(
suggestions
,
3
)
==
[
":atom"
,
"Pleroma.Upload"
,
{
":atom"
,
"Pleroma.Upload"
}]
%{
suggestions
:
suggestions
}
=
Enum
.
at
(
children
,
6
)
assert
Enum
.
at
(
suggestions
,
0
)
==
":always"
assert
Enum
.
at
(
suggestions
,
1
)
==
":never"
assert
Enum
.
at
(
suggestions
,
2
)
==
":if_available"
end
test
"group, key as string in main desc"
do
descriptions
=
Generator
.
convert_to_strings
(
@descriptions
)
desc
=
Enum
.
at
(
descriptions
,
3
)
assert
desc
[
:group
]
==
"Some string group"
assert
desc
[
:key
]
==
"Some string key"
end
test
"key as string subchild"
do
[%{
children
:
children
}
|
_
]
=
Generator
.
convert_to_strings
(
@descriptions
)
child
=
Enum
.
at
(
children
,
7
)
assert
child
[
:key
]
==
"application/xml"
end
test
"suggestion for tls versions"
do
[%{
children
:
children
}
|
_
]
=
Generator
.
convert_to_strings
(
@descriptions
)
child
=
Enum
.
at
(
children
,
8
)
assert
child
[
:suggestions
]
==
[
":tlsv1"
,
":tlsv1.1"
,
":tlsv1.2"
]
end
test
"subgroup with module name"
do
[%{
children
:
children
}
|
_
]
=
Generator
.
convert_to_strings
(
@descriptions
)
%{
group
:
subgroup
}
=
Enum
.
at
(
children
,
6
)
assert
subgroup
==
{
":subgroup"
,
"Swoosh.Adapters.SMTP"
}
end
end
end
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sat, Oct 25, 7:16 PM (1 d, 8 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
543549
Default Alt Text
generator_test.exs (6 KB)
Attached To
Mode
rPUBE pleroma-upstream
Attached
Detach File
Event Timeline
Log In to Comment